From 1991bd437f798e52d6210cf4fac173a10e30f0bd Mon Sep 17 00:00:00 2001 From: askeluv Date: Fri, 8 Mar 2019 12:32:21 +0800 Subject: [PATCH 01/95] First entity: Github repo --- .../1552016339539-CreateGithubRepo.ts | 33 +++++ .../pipeline/src/data_sources/github/index.ts | 37 ++++++ packages/pipeline/src/entities/github_repo.ts | 43 ++++++ packages/pipeline/src/entities/index.ts | 1 + packages/pipeline/src/ormconfig.ts | 2 + packages/pipeline/src/parsers/github/index.ts | 1 + packages/pipeline/src/parsers/github/repo.ts | 23 ++++ packages/pipeline/src/scripts/pull_github.ts | 28 ++++ .../test/fixtures/github/api_v3_repo.json | 122 ++++++++++++++++++ .../test/fixtures/github/api_v3_repo.ts | 21 +++ .../test/parsers/github/github_repo_test.ts | 25 ++++ packages/pipeline/tsconfig.json | 3 +- 12 files changed, 338 insertions(+), 1 deletion(-) create mode 100644 packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts create mode 100644 packages/pipeline/src/data_sources/github/index.ts create mode 100644 packages/pipeline/src/entities/github_repo.ts create mode 100644 packages/pipeline/src/parsers/github/index.ts create mode 100644 packages/pipeline/src/parsers/github/repo.ts create mode 100644 packages/pipeline/src/scripts/pull_github.ts create mode 100644 packages/pipeline/test/fixtures/github/api_v3_repo.json create mode 100644 packages/pipeline/test/fixtures/github/api_v3_repo.ts create mode 100644 packages/pipeline/test/parsers/github/github_repo_test.ts diff --git a/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts b/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts new file mode 100644 index 0000000000..84c9397267 --- /dev/null +++ b/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts @@ -0,0 +1,33 @@ +import {MigrationInterface, QueryRunner, Table} from "typeorm"; + +const table = new Table({ + name: 'raw.github_repo', + columns: [ + { name: 'observed_timestamp', type: 'numeric', isPrimary: true}, + { name: 'name', type: 'varchar', isPrimary: true }, + + { name: 'created_at', type: 'numeric', isNullable: false }, + { name: 'updated_at', type: 'numeric', isNullable: false }, + { name: 'pushed_at', type: 'numeric', isNullable: false }, + + { name: 'size', type: 'numeric', isNullable: false }, + { name: 'stargazers', type: 'numeric', isNullable: false }, + { name: 'watchers', type: 'numeric', isNullable: false }, + { name: 'forks', type: 'numeric', isNullable: false }, + { name: 'open_issues', type: 'numeric', isNullable: false }, + { name: 'network', type: 'numeric', isNullable: false }, + { name: 'subscribers', type: 'numeric', isNullable: false } + ], +}); + +export class CreateGithubRepo1552016339539 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable(table); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable(table); + } + +} diff --git a/packages/pipeline/src/data_sources/github/index.ts b/packages/pipeline/src/data_sources/github/index.ts new file mode 100644 index 0000000000..7d4f13f8b8 --- /dev/null +++ b/packages/pipeline/src/data_sources/github/index.ts @@ -0,0 +1,37 @@ +import { fetchAsync, logUtils } from '@0x/utils'; + +export interface GithubRepoResponse { + name: string; + created_at: string; + updated_at: string; + pushed_at: string; + size: number; + stargazers_count: number; + watchers_count: number; + forks: number; + open_issues: number; + network_count: number; + subscribers_count: number; +} + +// tslint:disable:prefer-function-over-method +// ^ Keep consistency with other sources and help logical organization +export class GithubSource { + public readonly _repoUrl: string; + public readonly _pullsUrl: string; + + constructor(owner: string, repo: string) { + const urlBase = 'https://api.github.com'; + this._repoUrl = `${urlBase}/repos/${owner}/${repo}`; + this._pullsUrl = `${urlBase}/repos/${owner}/${repo}/pulls`; + } + + /** + * Call Github API for repo and return result. + */ + public async getGithubRepoAsync(): Promise { + const resp = await fetchAsync(this._repoUrl); + const respJson: GithubRepoResponse = await resp.json(); + return respJson; + } +} diff --git a/packages/pipeline/src/entities/github_repo.ts b/packages/pipeline/src/entities/github_repo.ts new file mode 100644 index 0000000000..0010ca02df --- /dev/null +++ b/packages/pipeline/src/entities/github_repo.ts @@ -0,0 +1,43 @@ +import { Column, Entity, PrimaryColumn } from 'typeorm'; + +import { numberToBigIntTransformer } from '../utils'; + +@Entity({ name: 'github_repo', schema: 'raw' }) +export class GithubRepo { + @PrimaryColumn({ name: 'observed_timestamp', type: 'bigint', transformer: numberToBigIntTransformer }) + public observedTimestamp!: number; + + @PrimaryColumn({ name: 'name' }) + public name!: string; + + @Column({ name: 'created_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public createdAt!: number; + + @Column({ name: 'updated_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public updatedAt!: number; + + @Column({ name: 'pushed_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public pushedAt!: number; + + @Column({ name: 'size', transformer: numberToBigIntTransformer }) + public size!: number; + + @Column({ name: 'stargazers', transformer: numberToBigIntTransformer }) + public stargazers!: number; + + @Column({ name: 'watchers', transformer: numberToBigIntTransformer }) + public watchers!: number; + + @Column({ name: 'forks', transformer: numberToBigIntTransformer }) + public forks!: number; + + @Column({ name: 'open_issues', transformer: numberToBigIntTransformer }) + public openIssues!: number; + + @Column({ name: 'network', transformer: numberToBigIntTransformer }) + public network!: number; + + @Column({ name: 'subscribers', transformer: numberToBigIntTransformer }) + public subscribers!: number; + +} diff --git a/packages/pipeline/src/entities/index.ts b/packages/pipeline/src/entities/index.ts index 0f3e85f9c6..3f92ee528f 100644 --- a/packages/pipeline/src/entities/index.ts +++ b/packages/pipeline/src/entities/index.ts @@ -8,6 +8,7 @@ export { EtherscanTransaction } from './etherscan_transaction'; export { ExchangeCancelEvent } from './exchange_cancel_event'; export { ExchangeCancelUpToEvent } from './exchange_cancel_up_to_event'; export { ExchangeFillEvent } from './exchange_fill_event'; +export { GithubRepo } from './github_repo'; export { NonfungibleDotComTrade } from './nonfungible_dot_com_trade'; export { OHLCVExternal } from './ohlcv_external'; export { Relayer } from './relayer'; diff --git a/packages/pipeline/src/ormconfig.ts b/packages/pipeline/src/ormconfig.ts index e2e6be7691..7410c67f28 100644 --- a/packages/pipeline/src/ormconfig.ts +++ b/packages/pipeline/src/ormconfig.ts @@ -13,6 +13,7 @@ import { ExchangeCancelEvent, ExchangeCancelUpToEvent, ExchangeFillEvent, + GithubRepo, NonfungibleDotComTrade, OHLCVExternal, Relayer, @@ -37,6 +38,7 @@ const entities = [ ExchangeCancelUpToEvent, ExchangeFillEvent, ERC20ApprovalEvent, + GithubRepo, NonfungibleDotComTrade, OHLCVExternal, Relayer, diff --git a/packages/pipeline/src/parsers/github/index.ts b/packages/pipeline/src/parsers/github/index.ts new file mode 100644 index 0000000000..dfbac9d2a7 --- /dev/null +++ b/packages/pipeline/src/parsers/github/index.ts @@ -0,0 +1 @@ +export { parseGithubRepo } from './repo'; diff --git a/packages/pipeline/src/parsers/github/repo.ts b/packages/pipeline/src/parsers/github/repo.ts new file mode 100644 index 0000000000..e6b4d808be --- /dev/null +++ b/packages/pipeline/src/parsers/github/repo.ts @@ -0,0 +1,23 @@ +import { GithubRepoResponse } from '../../data_sources/github'; +import { GithubRepo } from '../../entities'; + +/** + * Converts a Github response from the API into an GithubRepo entity. + * @param rawRepo A Github response from the API into an GithubRepo entity. + */ +export function parseGithubRepo(rawRepo: GithubRepoResponse, observedTimestamp: number): GithubRepo { + const parsedRepo = new GithubRepo(); + parsedRepo.observedTimestamp = observedTimestamp; + parsedRepo.name = rawRepo.name; + parsedRepo.createdAt = Date.parse(rawRepo.created_at); + parsedRepo.updatedAt = Date.parse(rawRepo.updated_at); + parsedRepo.pushedAt = Date.parse(rawRepo.pushed_at); + parsedRepo.size = rawRepo.size; + parsedRepo.stargazers = rawRepo.stargazers_count; + parsedRepo.watchers = rawRepo.watchers_count; + parsedRepo.forks = rawRepo.forks; + parsedRepo.openIssues = rawRepo.open_issues; + parsedRepo.network = rawRepo.network_count; + parsedRepo.subscribers = rawRepo.subscribers_count; + return parsedRepo; +} diff --git a/packages/pipeline/src/scripts/pull_github.ts b/packages/pipeline/src/scripts/pull_github.ts new file mode 100644 index 0000000000..8aa0ae9a51 --- /dev/null +++ b/packages/pipeline/src/scripts/pull_github.ts @@ -0,0 +1,28 @@ +import { Connection, ConnectionOptions, createConnection } from 'typeorm'; + +import { GithubSource } from '../data_sources/github'; +import { GithubRepo } from '../entities'; +import * as ormConfig from '../ormconfig'; +import { parseGithubRepo } from '../parsers/github'; +import { handleError } from '../utils'; + +const GITHUB_OWNER = '0xProject'; +const GITHUB_REPO = '0x-monorepo'; + +let connection: Connection; + +(async () => { + connection = await createConnection(ormConfig as ConnectionOptions); + const GithubRepoRepository = connection.getRepository(GithubRepo); + const githubSource = new GithubSource(GITHUB_OWNER, GITHUB_REPO); + + // get repo and save + const rawRepo = await githubSource.getGithubRepoAsync(); + const observedTimestamp = Date.now(); + const record = parseGithubRepo(rawRepo, observedTimestamp); + await GithubRepoRepository.save(record); + + // TODO: get pull requests and save + + process.exit(0); +})().catch(handleError); diff --git a/packages/pipeline/test/fixtures/github/api_v3_repo.json b/packages/pipeline/test/fixtures/github/api_v3_repo.json new file mode 100644 index 0000000000..37396d34fc --- /dev/null +++ b/packages/pipeline/test/fixtures/github/api_v3_repo.json @@ -0,0 +1,122 @@ +{ + "id": 92181371, + "node_id": "MDEwOlJlcG9zaXRvcnk5MjE4MTM3MQ==", + "name": "0x-monorepo", + "full_name": "0xProject/0x-monorepo", + "private": false, + "owner": { + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/0xProject/0x-monorepo", + "description": "0x protocol monorepo - includes our smart contracts and many developer tools", + "fork": false, + "url": "https://api.github.com/repos/0xProject/0x-monorepo", + "forks_url": "https://api.github.com/repos/0xProject/0x-monorepo/forks", + "keys_url": "https://api.github.com/repos/0xProject/0x-monorepo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/0xProject/0x-monorepo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/0xProject/0x-monorepo/teams", + "hooks_url": "https://api.github.com/repos/0xProject/0x-monorepo/hooks", + "issue_events_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/events{/number}", + "events_url": "https://api.github.com/repos/0xProject/0x-monorepo/events", + "assignees_url": "https://api.github.com/repos/0xProject/0x-monorepo/assignees{/user}", + "branches_url": "https://api.github.com/repos/0xProject/0x-monorepo/branches{/branch}", + "tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/tags", + "blobs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/0xProject/0x-monorepo/languages", + "stargazers_url": "https://api.github.com/repos/0xProject/0x-monorepo/stargazers", + "contributors_url": "https://api.github.com/repos/0xProject/0x-monorepo/contributors", + "subscribers_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscribers", + "subscription_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscription", + "commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/{+path}", + "compare_url": "https://api.github.com/repos/0xProject/0x-monorepo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/0xProject/0x-monorepo/merges", + "archive_url": "https://api.github.com/repos/0xProject/0x-monorepo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/0xProject/0x-monorepo/downloads", + "issues_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues{/number}", + "pulls_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/0xProject/0x-monorepo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/0xProject/0x-monorepo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/0xProject/0x-monorepo/labels{/name}", + "releases_url": "https://api.github.com/repos/0xProject/0x-monorepo/releases{/id}", + "deployments_url": "https://api.github.com/repos/0xProject/0x-monorepo/deployments", + "created_at": "2017-05-23T14:17:33Z", + "updated_at": "2019-03-06T21:48:49Z", + "pushed_at": "2019-03-06T23:59:05Z", + "git_url": "git://github.com/0xProject/0x-monorepo.git", + "ssh_url": "git@github.com:0xProject/0x-monorepo.git", + "clone_url": "https://github.com/0xProject/0x-monorepo.git", + "svn_url": "https://github.com/0xProject/0x-monorepo", + "homepage": "", + "size": 86538, + "stargazers_count": 989, + "watchers_count": 989, + "language": "TypeScript", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 294, + "mirror_url": null, + "archived": false, + "open_issues_count": 46, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 294, + "open_issues": 46, + "watchers": 989, + "default_branch": "development", + "organization": { + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false + }, + "network_count": 294, + "subscribers_count": 89 + } + \ No newline at end of file diff --git a/packages/pipeline/test/fixtures/github/api_v3_repo.ts b/packages/pipeline/test/fixtures/github/api_v3_repo.ts new file mode 100644 index 0000000000..3a6d9f9e4b --- /dev/null +++ b/packages/pipeline/test/fixtures/github/api_v3_repo.ts @@ -0,0 +1,21 @@ +import { GithubRepo } from '../../../src/entities'; + +// To re-create the JSON file from the API (e.g. if the API output schema changes), run the below command: +// curl https://api.github.com/repos/0xProject/0x-monorepo +// docs here: https://developer.github.com/v3/repos/#get + +const ParsedGithubRepo: GithubRepo = { + observedTimestamp: Date.now(), + name: '0x-monorepo', + createdAt: 1495549053000, + updatedAt: 1551908929000, + pushedAt: 1551916745000, + size: 86538, + stargazers: 989, + watchers: 989, + forks: 294, + openIssues: 46, + network: 294, + subscribers: 89, + }; +export { ParsedGithubRepo }; diff --git a/packages/pipeline/test/parsers/github/github_repo_test.ts b/packages/pipeline/test/parsers/github/github_repo_test.ts new file mode 100644 index 0000000000..8e6a9c0d72 --- /dev/null +++ b/packages/pipeline/test/parsers/github/github_repo_test.ts @@ -0,0 +1,25 @@ +import * as chai from 'chai'; +import 'mocha'; + +import { GithubRepoResponse } from '../../../src/data_sources/github'; +import { parseGithubRepo } from '../../../src/parsers/github'; +import { chaiSetup } from '../../utils/chai_setup'; + +import { ParsedGithubRepo } from '../../fixtures/github/api_v3_repo'; +import * as githubRepoResponse from '../../fixtures/github/api_v3_repo.json'; + +chaiSetup.configure(); +const expect = chai.expect; + +// tslint:disable:custom-no-magic-numbers +describe('github_repo', () => { + describe('parseGithubRepo', () => { + it('converts GithubResponse to GithubRepo entities', () => { + const response: GithubRepoResponse = githubRepoResponse; + const expected = ParsedGithubRepo; + const observedTimestamp = expected.observedTimestamp; + const actual = parseGithubRepo(response, observedTimestamp); + expect(actual).deep.equal(expected); + }); + }); +}); diff --git a/packages/pipeline/tsconfig.json b/packages/pipeline/tsconfig.json index 4c43775d74..d4db6fafa3 100644 --- a/packages/pipeline/tsconfig.json +++ b/packages/pipeline/tsconfig.json @@ -14,6 +14,7 @@ "./test/fixtures/copper/api_v1_list_activities.json", "./test/fixtures/copper/api_v1_list_leads.json", "./test/fixtures/copper/api_v1_list_opportunities.json", - "./test/fixtures/etherscan/api_v1_accounts_transactions.json" + "./test/fixtures/etherscan/api_v1_accounts_transactions.json", + "./test/fixtures/github/api_v3_repo.json" ] } From 55fd71c5e1cb8c5a8dbc0da298657230db63c8e3 Mon Sep 17 00:00:00 2001 From: askeluv Date: Fri, 8 Mar 2019 14:37:36 +0800 Subject: [PATCH 02/95] Second entity: Github pull request --- .../1552024155243-CreateGithubPullRequest.ts | 32 ++ .../pipeline/src/data_sources/github/index.ts | 31 +- .../src/entities/github_pull_request.ts | 37 ++ packages/pipeline/src/entities/index.ts | 1 + packages/pipeline/src/ormconfig.ts | 2 + packages/pipeline/src/parsers/github/index.ts | 1 + packages/pipeline/src/parsers/github/pulls.ts | 23 ++ packages/pipeline/src/scripts/pull_github.ts | 31 +- .../test/fixtures/github/api_v3_pulls.json | 335 ++++++++++++++++++ .../test/fixtures/github/api_v3_pulls.ts | 19 + .../test/parsers/github/github_pulls_test.ts | 26 ++ .../test/parsers/github/github_repo_test.ts | 2 +- packages/pipeline/tsconfig.json | 3 +- 13 files changed, 532 insertions(+), 11 deletions(-) create mode 100644 packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts create mode 100644 packages/pipeline/src/entities/github_pull_request.ts create mode 100644 packages/pipeline/src/parsers/github/pulls.ts create mode 100644 packages/pipeline/test/fixtures/github/api_v3_pulls.json create mode 100644 packages/pipeline/test/fixtures/github/api_v3_pulls.ts create mode 100644 packages/pipeline/test/parsers/github/github_pulls_test.ts diff --git a/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts b/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts new file mode 100644 index 0000000000..14e6f64d41 --- /dev/null +++ b/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts @@ -0,0 +1,32 @@ +import {MigrationInterface, QueryRunner, Table} from "typeorm"; + +const table = new Table({ + name: 'raw.github_pull_request', + columns: [ + { name: 'observed_timestamp', type: 'numeric', isPrimary: true}, + { name: 'repo_name', type: 'varchar', isPrimary: true }, + { name: 'pull_request_number', type: 'numeric', isPrimary: true }, + + { name: 'created_at', type: 'numeric', isNullable: false }, + { name: 'updated_at', type: 'numeric', isNullable: false }, + { name: 'closed_at', type: 'numeric', isNullable: true }, + { name: 'merged_at', type: 'numeric', isNullable: true }, + + { name: 'state', type: 'varchar', isNullable: false }, + { name: 'title', type: 'varchar', isNullable: false }, + { name: 'user_login', type: 'varchar', isNullable: false }, + + ], +}); + +export class CreateGithubPullRequest1552024155243 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable(table); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable(table); + } + +} diff --git a/packages/pipeline/src/data_sources/github/index.ts b/packages/pipeline/src/data_sources/github/index.ts index 7d4f13f8b8..2c9b4872b9 100644 --- a/packages/pipeline/src/data_sources/github/index.ts +++ b/packages/pipeline/src/data_sources/github/index.ts @@ -1,4 +1,4 @@ -import { fetchAsync, logUtils } from '@0x/utils'; +import { fetchAsync } from '@0x/utils'; export interface GithubRepoResponse { name: string; @@ -14,6 +14,24 @@ export interface GithubRepoResponse { subscribers_count: number; } +export interface GithubPullRequestResponse { + number: number; + title: string; + state: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + user: { + login: string; + }; + base: { + repo: { + name: string; + }; + }; +} + // tslint:disable:prefer-function-over-method // ^ Keep consistency with other sources and help logical organization export class GithubSource { @@ -23,7 +41,7 @@ export class GithubSource { constructor(owner: string, repo: string) { const urlBase = 'https://api.github.com'; this._repoUrl = `${urlBase}/repos/${owner}/${repo}`; - this._pullsUrl = `${urlBase}/repos/${owner}/${repo}/pulls`; + this._pullsUrl = `${urlBase}/repos/${owner}/${repo}/pulls?state=all&per_page=100&page=`; } /** @@ -34,4 +52,13 @@ export class GithubSource { const respJson: GithubRepoResponse = await resp.json(); return respJson; } + + /** + * Call Github API for pull requests and return result. + */ + public async getGithubPullsAsync(page: number): Promise { + const resp = await fetchAsync(`${this._pullsUrl}${page}`); + const respJson: GithubPullRequestResponse[] = await resp.json(); + return respJson; + } } diff --git a/packages/pipeline/src/entities/github_pull_request.ts b/packages/pipeline/src/entities/github_pull_request.ts new file mode 100644 index 0000000000..63396ba274 --- /dev/null +++ b/packages/pipeline/src/entities/github_pull_request.ts @@ -0,0 +1,37 @@ +import { Column, Entity, PrimaryColumn } from 'typeorm'; + +import { numberToBigIntTransformer } from '../utils'; + +@Entity({ name: 'github_pull_request', schema: 'raw' }) +export class GithubPullRequest { + @PrimaryColumn({ name: 'observed_timestamp', type: 'bigint', transformer: numberToBigIntTransformer }) + public observedTimestamp!: number; + + @PrimaryColumn({ name: 'repo_name' }) + public repoName!: string; + + @PrimaryColumn({ name: 'pull_request_number', transformer: numberToBigIntTransformer }) + public pullRequestNumber!: number; + + @Column({ name: 'created_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public createdAt!: number; + + @Column({ name: 'updated_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public updatedAt!: number; + + @Column({ name: 'closed_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public closedAt?: number | null; + + @Column({ name: 'merged_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public mergedAt?: number | null; + + @Column({ name: 'state' }) + public state!: string; + + @Column({ name: 'title' }) + public title!: string; + + @Column({ name: 'user_login' }) + public userLogin!: string; + +} diff --git a/packages/pipeline/src/entities/index.ts b/packages/pipeline/src/entities/index.ts index 3f92ee528f..2ce4cfd082 100644 --- a/packages/pipeline/src/entities/index.ts +++ b/packages/pipeline/src/entities/index.ts @@ -9,6 +9,7 @@ export { ExchangeCancelEvent } from './exchange_cancel_event'; export { ExchangeCancelUpToEvent } from './exchange_cancel_up_to_event'; export { ExchangeFillEvent } from './exchange_fill_event'; export { GithubRepo } from './github_repo'; +export { GithubPullRequest } from './github_pull_request'; export { NonfungibleDotComTrade } from './nonfungible_dot_com_trade'; export { OHLCVExternal } from './ohlcv_external'; export { Relayer } from './relayer'; diff --git a/packages/pipeline/src/ormconfig.ts b/packages/pipeline/src/ormconfig.ts index 7410c67f28..4ae5fdb73a 100644 --- a/packages/pipeline/src/ormconfig.ts +++ b/packages/pipeline/src/ormconfig.ts @@ -13,6 +13,7 @@ import { ExchangeCancelEvent, ExchangeCancelUpToEvent, ExchangeFillEvent, + GithubPullRequest, GithubRepo, NonfungibleDotComTrade, OHLCVExternal, @@ -38,6 +39,7 @@ const entities = [ ExchangeCancelUpToEvent, ExchangeFillEvent, ERC20ApprovalEvent, + GithubPullRequest, GithubRepo, NonfungibleDotComTrade, OHLCVExternal, diff --git a/packages/pipeline/src/parsers/github/index.ts b/packages/pipeline/src/parsers/github/index.ts index dfbac9d2a7..3d94d3c039 100644 --- a/packages/pipeline/src/parsers/github/index.ts +++ b/packages/pipeline/src/parsers/github/index.ts @@ -1 +1,2 @@ export { parseGithubRepo } from './repo'; +export { parseGithubPulls } from './pulls'; diff --git a/packages/pipeline/src/parsers/github/pulls.ts b/packages/pipeline/src/parsers/github/pulls.ts new file mode 100644 index 0000000000..f239eae5b8 --- /dev/null +++ b/packages/pipeline/src/parsers/github/pulls.ts @@ -0,0 +1,23 @@ +import { GithubPullRequestResponse } from '../../data_sources/github'; +import { GithubPullRequest } from '../../entities'; + +/** + * Converts a Github response from the API into an GithubRepo entity. + * @param rawRepo A Github response from the API into an GithubRepo entity. + */ +export function parseGithubPulls(response: GithubPullRequestResponse[], observedTimestamp: number): GithubPullRequest[] { + return response.map( pull => { + const parsedPullRequest = new GithubPullRequest(); + parsedPullRequest.observedTimestamp = observedTimestamp; + parsedPullRequest.repoName = pull.base.repo.name; + parsedPullRequest.createdAt = Date.parse(pull.created_at); + parsedPullRequest.updatedAt = Date.parse(pull.updated_at); + parsedPullRequest.closedAt = pull.closed_at ? Date.parse(pull.closed_at) : null; + parsedPullRequest.mergedAt = pull.merged_at ? Date.parse(pull.merged_at) : null; + parsedPullRequest.pullRequestNumber = pull.number; + parsedPullRequest.state = pull.state; + parsedPullRequest.title = pull.title; + parsedPullRequest.userLogin = pull.user.login; + return parsedPullRequest; + }); +} diff --git a/packages/pipeline/src/scripts/pull_github.ts b/packages/pipeline/src/scripts/pull_github.ts index 8aa0ae9a51..f7514a3e19 100644 --- a/packages/pipeline/src/scripts/pull_github.ts +++ b/packages/pipeline/src/scripts/pull_github.ts @@ -1,28 +1,45 @@ import { Connection, ConnectionOptions, createConnection } from 'typeorm'; +import { logUtils } from '@0x/utils'; + import { GithubSource } from '../data_sources/github'; -import { GithubRepo } from '../entities'; +import { GithubPullRequest, GithubRepo } from '../entities'; import * as ormConfig from '../ormconfig'; -import { parseGithubRepo } from '../parsers/github'; +import { parseGithubPulls, parseGithubRepo } from '../parsers/github'; import { handleError } from '../utils'; const GITHUB_OWNER = '0xProject'; const GITHUB_REPO = '0x-monorepo'; +const RECORDS_PER_PAGE = 100; let connection: Connection; (async () => { connection = await createConnection(ormConfig as ConnectionOptions); - const GithubRepoRepository = connection.getRepository(GithubRepo); const githubSource = new GithubSource(GITHUB_OWNER, GITHUB_REPO); + const observedTimestamp = Date.now(); // get repo and save + const GithubRepoRepository = connection.getRepository(GithubRepo); + logUtils.log('Fetching Github repo from API.'); const rawRepo = await githubSource.getGithubRepoAsync(); - const observedTimestamp = Date.now(); - const record = parseGithubRepo(rawRepo, observedTimestamp); - await GithubRepoRepository.save(record); + const repo = parseGithubRepo(rawRepo, observedTimestamp); + logUtils.log('Saving Github repo to database.'); + await GithubRepoRepository.save(repo); - // TODO: get pull requests and save + // get pull requests and save + const GithubPullRequestRepository = connection.getRepository(GithubPullRequest); + let numberOfRecords = RECORDS_PER_PAGE; + let page = 1; + while (numberOfRecords === RECORDS_PER_PAGE) { + logUtils.log(`Fetching Github pull requests from API, page: ${page}.`); + const rawPulls = await githubSource.getGithubPullsAsync(page); + const pulls = parseGithubPulls(rawPulls, observedTimestamp); + numberOfRecords = pulls.length; + page++; + logUtils.log(`Saving ${pulls.length} pull requests to database.`); + await GithubPullRequestRepository.save(pulls); + } process.exit(0); })().catch(handleError); diff --git a/packages/pipeline/test/fixtures/github/api_v3_pulls.json b/packages/pipeline/test/fixtures/github/api_v3_pulls.json new file mode 100644 index 0000000000..d7580d683e --- /dev/null +++ b/packages/pipeline/test/fixtures/github/api_v3_pulls.json @@ -0,0 +1,335 @@ +[ + { + "url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684", + "id": 259358832, + "node_id": "MDExOlB1bGxSZXF1ZXN0MjU5MzU4ODMy", + "html_url": "https://github.com/0xProject/0x-monorepo/pull/1684", + "diff_url": "https://github.com/0xProject/0x-monorepo/pull/1684.diff", + "patch_url": "https://github.com/0xProject/0x-monorepo/pull/1684.patch", + "issue_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684", + "number": 1684, + "state": "open", + "locked": false, + "title": "[WIP] Pull Github data", + "user": { + "login": "askeluv", + "id": 2386262, + "node_id": "MDQ6VXNlcjIzODYyNjI=", + "avatar_url": "https://avatars2.githubusercontent.com/u/2386262?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/askeluv", + "html_url": "https://github.com/askeluv", + "followers_url": "https://api.github.com/users/askeluv/followers", + "following_url": "https://api.github.com/users/askeluv/following{/other_user}", + "gists_url": "https://api.github.com/users/askeluv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/askeluv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/askeluv/subscriptions", + "organizations_url": "https://api.github.com/users/askeluv/orgs", + "repos_url": "https://api.github.com/users/askeluv/repos", + "events_url": "https://api.github.com/users/askeluv/events{/privacy}", + "received_events_url": "https://api.github.com/users/askeluv/received_events", + "type": "User", + "site_admin": false + }, + "body": "## Description\r\n\r\nPulling Github data so we can start monitoring metrics related to the monorepo.\r\n\r\n## Testing instructions\r\n\r\n```\r\nyarn build\r\nyarn migrate:run\r\nyarn test\r\nyarn test:db\r\nnode lib/src/scripts/pull_github.js\r\n```\r\n\r\n## Types of changes\r\n\r\nNew feature (non-breaking change which adds functionality)\r\n\r\n## Checklist:\r\n\r\n- [x] Github repo entity\r\n- [ ] Github pull request entity\r\n- [ ] Github fork entity\r\n", + "created_at": "2019-03-08T04:36:28Z", + "updated_at": "2019-03-08T04:36:28Z", + "closed_at": null, + "merged_at": null, + "merge_commit_sha": "85d164aedbf17d96f11d20b2f08eeaca0defb6e2", + "assignee": null, + "assignees": [ + + ], + "requested_reviewers": [ + + ], + "requested_teams": [ + + ], + "labels": [ + + ], + "milestone": null, + "commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/commits", + "review_comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/comments", + "review_comment_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684/comments", + "statuses_url": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/1991bd437f798e52d6210cf4fac173a10e30f0bd", + "head": { + "label": "0xProject:pull-github-data", + "ref": "pull-github-data", + "sha": "1991bd437f798e52d6210cf4fac173a10e30f0bd", + "user": { + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 92181371, + "node_id": "MDEwOlJlcG9zaXRvcnk5MjE4MTM3MQ==", + "name": "0x-monorepo", + "full_name": "0xProject/0x-monorepo", + "private": false, + "owner": { + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/0xProject/0x-monorepo", + "description": "0x protocol monorepo - includes our smart contracts and many developer tools", + "fork": false, + "url": "https://api.github.com/repos/0xProject/0x-monorepo", + "forks_url": "https://api.github.com/repos/0xProject/0x-monorepo/forks", + "keys_url": "https://api.github.com/repos/0xProject/0x-monorepo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/0xProject/0x-monorepo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/0xProject/0x-monorepo/teams", + "hooks_url": "https://api.github.com/repos/0xProject/0x-monorepo/hooks", + "issue_events_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/events{/number}", + "events_url": "https://api.github.com/repos/0xProject/0x-monorepo/events", + "assignees_url": "https://api.github.com/repos/0xProject/0x-monorepo/assignees{/user}", + "branches_url": "https://api.github.com/repos/0xProject/0x-monorepo/branches{/branch}", + "tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/tags", + "blobs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/0xProject/0x-monorepo/languages", + "stargazers_url": "https://api.github.com/repos/0xProject/0x-monorepo/stargazers", + "contributors_url": "https://api.github.com/repos/0xProject/0x-monorepo/contributors", + "subscribers_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscribers", + "subscription_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscription", + "commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/{+path}", + "compare_url": "https://api.github.com/repos/0xProject/0x-monorepo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/0xProject/0x-monorepo/merges", + "archive_url": "https://api.github.com/repos/0xProject/0x-monorepo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/0xProject/0x-monorepo/downloads", + "issues_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues{/number}", + "pulls_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/0xProject/0x-monorepo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/0xProject/0x-monorepo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/0xProject/0x-monorepo/labels{/name}", + "releases_url": "https://api.github.com/repos/0xProject/0x-monorepo/releases{/id}", + "deployments_url": "https://api.github.com/repos/0xProject/0x-monorepo/deployments", + "created_at": "2017-05-23T14:17:33Z", + "updated_at": "2019-03-08T00:48:18Z", + "pushed_at": "2019-03-08T04:36:28Z", + "git_url": "git://github.com/0xProject/0x-monorepo.git", + "ssh_url": "git@github.com:0xProject/0x-monorepo.git", + "clone_url": "https://github.com/0xProject/0x-monorepo.git", + "svn_url": "https://github.com/0xProject/0x-monorepo", + "homepage": "", + "size": 86647, + "stargazers_count": 989, + "watchers_count": 989, + "language": "TypeScript", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 295, + "mirror_url": null, + "archived": false, + "open_issues_count": 46, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 295, + "open_issues": 46, + "watchers": 989, + "default_branch": "development" + } + }, + "base": { + "label": "0xProject:development", + "ref": "development", + "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "user": { + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 92181371, + "node_id": "MDEwOlJlcG9zaXRvcnk5MjE4MTM3MQ==", + "name": "0x-monorepo", + "full_name": "0xProject/0x-monorepo", + "private": false, + "owner": { + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/0xProject/0x-monorepo", + "description": "0x protocol monorepo - includes our smart contracts and many developer tools", + "fork": false, + "url": "https://api.github.com/repos/0xProject/0x-monorepo", + "forks_url": "https://api.github.com/repos/0xProject/0x-monorepo/forks", + "keys_url": "https://api.github.com/repos/0xProject/0x-monorepo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/0xProject/0x-monorepo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/0xProject/0x-monorepo/teams", + "hooks_url": "https://api.github.com/repos/0xProject/0x-monorepo/hooks", + "issue_events_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/events{/number}", + "events_url": "https://api.github.com/repos/0xProject/0x-monorepo/events", + "assignees_url": "https://api.github.com/repos/0xProject/0x-monorepo/assignees{/user}", + "branches_url": "https://api.github.com/repos/0xProject/0x-monorepo/branches{/branch}", + "tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/tags", + "blobs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/0xProject/0x-monorepo/languages", + "stargazers_url": "https://api.github.com/repos/0xProject/0x-monorepo/stargazers", + "contributors_url": "https://api.github.com/repos/0xProject/0x-monorepo/contributors", + "subscribers_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscribers", + "subscription_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscription", + "commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/{+path}", + "compare_url": "https://api.github.com/repos/0xProject/0x-monorepo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/0xProject/0x-monorepo/merges", + "archive_url": "https://api.github.com/repos/0xProject/0x-monorepo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/0xProject/0x-monorepo/downloads", + "issues_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues{/number}", + "pulls_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/0xProject/0x-monorepo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/0xProject/0x-monorepo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/0xProject/0x-monorepo/labels{/name}", + "releases_url": "https://api.github.com/repos/0xProject/0x-monorepo/releases{/id}", + "deployments_url": "https://api.github.com/repos/0xProject/0x-monorepo/deployments", + "created_at": "2017-05-23T14:17:33Z", + "updated_at": "2019-03-08T00:48:18Z", + "pushed_at": "2019-03-08T04:36:28Z", + "git_url": "git://github.com/0xProject/0x-monorepo.git", + "ssh_url": "git@github.com:0xProject/0x-monorepo.git", + "clone_url": "https://github.com/0xProject/0x-monorepo.git", + "svn_url": "https://github.com/0xProject/0x-monorepo", + "homepage": "", + "size": 86647, + "stargazers_count": 989, + "watchers_count": 989, + "language": "TypeScript", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 295, + "mirror_url": null, + "archived": false, + "open_issues_count": 46, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 295, + "open_issues": 46, + "watchers": 989, + "default_branch": "development" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684" + }, + "html": { + "href": "https://github.com/0xProject/0x-monorepo/pull/1684" + }, + "issue": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684" + }, + "comments": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/1991bd437f798e52d6210cf4fac173a10e30f0bd" + } + }, + "author_association": "CONTRIBUTOR" + } +] \ No newline at end of file diff --git a/packages/pipeline/test/fixtures/github/api_v3_pulls.ts b/packages/pipeline/test/fixtures/github/api_v3_pulls.ts new file mode 100644 index 0000000000..0ae78be9c8 --- /dev/null +++ b/packages/pipeline/test/fixtures/github/api_v3_pulls.ts @@ -0,0 +1,19 @@ +import { GithubPullRequest } from '../../../src/entities'; + +// To re-create the JSON file from the API (e.g. if the API output schema changes), run the below command: +// curl https://api.github.com/repos/0xProject/0x-monorepo/pulls?per_page=1&page=1 +// docs here: https://developer.github.com/v3/pulls/#list-pull-requests + +const ParsedGithubPulls: GithubPullRequest = { + observedTimestamp: Date.now(), + repoName: '0x-monorepo', + pullRequestNumber: 1684, + state: 'open', + title: '[WIP] Pull Github data', + userLogin: 'askeluv', + createdAt: 1552019788000, + updatedAt: 1552019788000, + closedAt: null, + mergedAt: null, + }; +export { ParsedGithubPulls }; diff --git a/packages/pipeline/test/parsers/github/github_pulls_test.ts b/packages/pipeline/test/parsers/github/github_pulls_test.ts new file mode 100644 index 0000000000..0dbc938989 --- /dev/null +++ b/packages/pipeline/test/parsers/github/github_pulls_test.ts @@ -0,0 +1,26 @@ +import * as chai from 'chai'; +import 'mocha'; + +import { GithubPullRequestResponse } from '../../../src/data_sources/github'; +import { parseGithubPulls } from '../../../src/parsers/github'; +import { chaiSetup } from '../../utils/chai_setup'; + +import { ParsedGithubPulls } from '../../fixtures/github/api_v3_pulls'; +import * as githubPullsResponse from '../../fixtures/github/api_v3_pulls.json'; + +chaiSetup.configure(); +const expect = chai.expect; + +// tslint:disable:custom-no-magic-numbers +describe('github_pulls', () => { + describe('parseGithubPulls', () => { + it('converts GithubPullsResponse to GithubPullRequest entities', () => { + const response: GithubPullRequestResponse[] = githubPullsResponse; + const expected = ParsedGithubPulls; + const observedTimestamp = expected.observedTimestamp; + const actualList = parseGithubPulls(response, observedTimestamp); + const actualPull = actualList[0]; + expect(actualPull).deep.equal(expected); + }); + }); +}); diff --git a/packages/pipeline/test/parsers/github/github_repo_test.ts b/packages/pipeline/test/parsers/github/github_repo_test.ts index 8e6a9c0d72..2ee2258982 100644 --- a/packages/pipeline/test/parsers/github/github_repo_test.ts +++ b/packages/pipeline/test/parsers/github/github_repo_test.ts @@ -14,7 +14,7 @@ const expect = chai.expect; // tslint:disable:custom-no-magic-numbers describe('github_repo', () => { describe('parseGithubRepo', () => { - it('converts GithubResponse to GithubRepo entities', () => { + it('converts GithubRepoResponse to GithubRepo entities', () => { const response: GithubRepoResponse = githubRepoResponse; const expected = ParsedGithubRepo; const observedTimestamp = expected.observedTimestamp; diff --git a/packages/pipeline/tsconfig.json b/packages/pipeline/tsconfig.json index d4db6fafa3..dac96c1466 100644 --- a/packages/pipeline/tsconfig.json +++ b/packages/pipeline/tsconfig.json @@ -15,6 +15,7 @@ "./test/fixtures/copper/api_v1_list_leads.json", "./test/fixtures/copper/api_v1_list_opportunities.json", "./test/fixtures/etherscan/api_v1_accounts_transactions.json", - "./test/fixtures/github/api_v3_repo.json" + "./test/fixtures/github/api_v3_repo.json", + "./test/fixtures/github/api_v3_pulls.json" ] } From 9f69d2cb76589570ded30f7c127c880f6f769912 Mon Sep 17 00:00:00 2001 From: askeluv Date: Fri, 8 Mar 2019 20:04:03 +0800 Subject: [PATCH 03/95] Third entity: Github fork --- .../1552044685566-CreateGithubFork.ts | 34 ++++++ .../pipeline/src/data_sources/github/index.ts | 19 +++- packages/pipeline/src/entities/github_fork.ts | 47 ++++++++ packages/pipeline/src/entities/github_repo.ts | 4 +- packages/pipeline/src/entities/index.ts | 1 + packages/pipeline/src/ormconfig.ts | 2 + packages/pipeline/src/parsers/github/forks.ts | 27 +++++ packages/pipeline/src/parsers/github/index.ts | 1 + packages/pipeline/src/scripts/pull_github.ts | 18 +++- .../test/fixtures/github/api_v3_forks.json | 101 ++++++++++++++++++ .../test/fixtures/github/api_v3_forks.ts | 22 ++++ .../test/fixtures/github/api_v3_pulls.ts | 4 +- .../test/parsers/github/github_forks_test.ts | 27 +++++ .../test/parsers/github/github_pulls_test.ts | 8 +- .../test/parsers/github/github_repo_test.ts | 6 +- packages/pipeline/test/utils/chai_setup.ts | 1 + packages/pipeline/tsconfig.json | 3 +- 17 files changed, 310 insertions(+), 15 deletions(-) create mode 100644 packages/pipeline/migrations/1552044685566-CreateGithubFork.ts create mode 100644 packages/pipeline/src/entities/github_fork.ts create mode 100644 packages/pipeline/src/parsers/github/forks.ts create mode 100644 packages/pipeline/test/fixtures/github/api_v3_forks.json create mode 100644 packages/pipeline/test/fixtures/github/api_v3_forks.ts create mode 100644 packages/pipeline/test/parsers/github/github_forks_test.ts diff --git a/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts b/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts new file mode 100644 index 0000000000..07e8c11ed5 --- /dev/null +++ b/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts @@ -0,0 +1,34 @@ +import {MigrationInterface, QueryRunner, Table} from "typeorm"; + +const table = new Table({ + name: 'raw.github_fork', + columns: [ + { name: 'observed_timestamp', type: 'numeric', isPrimary: true}, + { name: 'name', type: 'varchar', isPrimary: true }, + { name: 'owner_login', type: 'varchar', isPrimary: true }, + + { name: 'created_at', type: 'numeric', isNullable: false }, + { name: 'updated_at', type: 'numeric', isNullable: false }, + { name: 'pushed_at', type: 'numeric', isNullable: false }, + + { name: 'size', type: 'numeric', isNullable: false }, + { name: 'stargazers', type: 'numeric', isNullable: false }, + { name: 'watchers', type: 'numeric', isNullable: false }, + { name: 'forks', type: 'numeric', isNullable: false }, + { name: 'open_issues', type: 'numeric', isNullable: false }, + { name: 'network', type: 'numeric', isNullable: true }, + { name: 'subscribers', type: 'numeric', isNullable: true } + ], +}); + +export class CreateGithubFork1552044685566 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable(table); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable(table); + } + +} diff --git a/packages/pipeline/src/data_sources/github/index.ts b/packages/pipeline/src/data_sources/github/index.ts index 2c9b4872b9..9d6acb25d1 100644 --- a/packages/pipeline/src/data_sources/github/index.ts +++ b/packages/pipeline/src/data_sources/github/index.ts @@ -32,16 +32,24 @@ export interface GithubPullRequestResponse { }; } +export interface GithubForkResponse extends GithubRepoResponse { + owner: { + login: string; + }; +} + // tslint:disable:prefer-function-over-method // ^ Keep consistency with other sources and help logical organization export class GithubSource { public readonly _repoUrl: string; public readonly _pullsUrl: string; + public readonly _forksUrl: string; constructor(owner: string, repo: string) { const urlBase = 'https://api.github.com'; this._repoUrl = `${urlBase}/repos/${owner}/${repo}`; this._pullsUrl = `${urlBase}/repos/${owner}/${repo}/pulls?state=all&per_page=100&page=`; + this._forksUrl = `${urlBase}/repos/${owner}/${repo}/forks?per_page=100&page=`; } /** @@ -54,11 +62,20 @@ export class GithubSource { } /** - * Call Github API for pull requests and return result. + * Call Github API for pull requests and return result - paginated. */ public async getGithubPullsAsync(page: number): Promise { const resp = await fetchAsync(`${this._pullsUrl}${page}`); const respJson: GithubPullRequestResponse[] = await resp.json(); return respJson; } + + /** + * Call Github API for forks of repo and return result - paginated. + */ + public async getGithubForksAsync(page: number): Promise { + const resp = await fetchAsync(`${this._forksUrl}${page}`); + const respJson: GithubForkResponse[] = await resp.json(); + return respJson; + } } diff --git a/packages/pipeline/src/entities/github_fork.ts b/packages/pipeline/src/entities/github_fork.ts new file mode 100644 index 0000000000..8d9696ddcd --- /dev/null +++ b/packages/pipeline/src/entities/github_fork.ts @@ -0,0 +1,47 @@ +import { Column, Entity, PrimaryColumn } from 'typeorm'; + +import { numberToBigIntTransformer } from '../utils'; + +@Entity({ name: 'github_fork', schema: 'raw' }) +export class GithubFork { + + @PrimaryColumn({ name: 'observed_timestamp', type: 'bigint', transformer: numberToBigIntTransformer }) + public observedTimestamp!: number; + + @PrimaryColumn({ name: 'name' }) + public name!: string; + + @PrimaryColumn({ name: 'owner_login' }) + public ownerLogin!: string; + + @Column({ name: 'created_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public createdAt!: number; + + @Column({ name: 'updated_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public updatedAt!: number; + + @Column({ name: 'pushed_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public pushedAt!: number; + + @Column({ name: 'size', transformer: numberToBigIntTransformer }) + public size!: number; + + @Column({ name: 'stargazers', transformer: numberToBigIntTransformer }) + public stargazers!: number; + + @Column({ name: 'watchers', transformer: numberToBigIntTransformer }) + public watchers!: number; + + @Column({ name: 'forks', transformer: numberToBigIntTransformer }) + public forks!: number; + + @Column({ name: 'open_issues', transformer: numberToBigIntTransformer }) + public openIssues!: number; + + @Column({ name: 'network', type: 'integer', nullable: true }) + public network?: number; + + @Column({ name: 'subscribers', type: 'integer', nullable: true }) + public subscribers?: number; + +} diff --git a/packages/pipeline/src/entities/github_repo.ts b/packages/pipeline/src/entities/github_repo.ts index 0010ca02df..364fa7f883 100644 --- a/packages/pipeline/src/entities/github_repo.ts +++ b/packages/pipeline/src/entities/github_repo.ts @@ -35,9 +35,9 @@ export class GithubRepo { public openIssues!: number; @Column({ name: 'network', transformer: numberToBigIntTransformer }) - public network!: number; + public network?: number; @Column({ name: 'subscribers', transformer: numberToBigIntTransformer }) - public subscribers!: number; + public subscribers?: number; } diff --git a/packages/pipeline/src/entities/index.ts b/packages/pipeline/src/entities/index.ts index 2ce4cfd082..35cc578b14 100644 --- a/packages/pipeline/src/entities/index.ts +++ b/packages/pipeline/src/entities/index.ts @@ -8,6 +8,7 @@ export { EtherscanTransaction } from './etherscan_transaction'; export { ExchangeCancelEvent } from './exchange_cancel_event'; export { ExchangeCancelUpToEvent } from './exchange_cancel_up_to_event'; export { ExchangeFillEvent } from './exchange_fill_event'; +export { GithubFork } from './github_fork'; export { GithubRepo } from './github_repo'; export { GithubPullRequest } from './github_pull_request'; export { NonfungibleDotComTrade } from './nonfungible_dot_com_trade'; diff --git a/packages/pipeline/src/ormconfig.ts b/packages/pipeline/src/ormconfig.ts index 4ae5fdb73a..4990ceae49 100644 --- a/packages/pipeline/src/ormconfig.ts +++ b/packages/pipeline/src/ormconfig.ts @@ -13,6 +13,7 @@ import { ExchangeCancelEvent, ExchangeCancelUpToEvent, ExchangeFillEvent, + GithubFork, GithubPullRequest, GithubRepo, NonfungibleDotComTrade, @@ -39,6 +40,7 @@ const entities = [ ExchangeCancelUpToEvent, ExchangeFillEvent, ERC20ApprovalEvent, + GithubFork, GithubPullRequest, GithubRepo, NonfungibleDotComTrade, diff --git a/packages/pipeline/src/parsers/github/forks.ts b/packages/pipeline/src/parsers/github/forks.ts new file mode 100644 index 0000000000..dfe324359a --- /dev/null +++ b/packages/pipeline/src/parsers/github/forks.ts @@ -0,0 +1,27 @@ +import { GithubForkResponse } from '../../data_sources/github'; +import { GithubFork } from '../../entities'; + +/** + * Converts a Github response from the API into a GithubFork entity. + * @param response A Github response from the API. + */ +export function parseGithubForks(response: GithubForkResponse[], observedTimestamp: number): GithubFork[] { + const result: GithubFork[] = response.map( fork => { + const parsedFork = new GithubFork(); + parsedFork.observedTimestamp = observedTimestamp; + parsedFork.name = fork.name; + parsedFork.ownerLogin = fork.owner.login; + parsedFork.createdAt = Date.parse(fork.created_at); + parsedFork.updatedAt = Date.parse(fork.updated_at); + parsedFork.pushedAt = Date.parse(fork.pushed_at); + parsedFork.size = fork.size; + parsedFork.stargazers = fork.stargazers_count; + parsedFork.watchers = fork.watchers_count; + parsedFork.forks = fork.forks; + parsedFork.openIssues = fork.open_issues; + parsedFork.network = fork.network_count; + parsedFork.subscribers = fork.subscribers_count; + return parsedFork; + }); + return result; +} diff --git a/packages/pipeline/src/parsers/github/index.ts b/packages/pipeline/src/parsers/github/index.ts index 3d94d3c039..a3ad562ace 100644 --- a/packages/pipeline/src/parsers/github/index.ts +++ b/packages/pipeline/src/parsers/github/index.ts @@ -1,2 +1,3 @@ +export { parseGithubForks } from './forks'; export { parseGithubRepo } from './repo'; export { parseGithubPulls } from './pulls'; diff --git a/packages/pipeline/src/scripts/pull_github.ts b/packages/pipeline/src/scripts/pull_github.ts index f7514a3e19..bbd5dcff14 100644 --- a/packages/pipeline/src/scripts/pull_github.ts +++ b/packages/pipeline/src/scripts/pull_github.ts @@ -3,9 +3,9 @@ import { Connection, ConnectionOptions, createConnection } from 'typeorm'; import { logUtils } from '@0x/utils'; import { GithubSource } from '../data_sources/github'; -import { GithubPullRequest, GithubRepo } from '../entities'; +import { GithubFork, GithubPullRequest, GithubRepo } from '../entities'; import * as ormConfig from '../ormconfig'; -import { parseGithubPulls, parseGithubRepo } from '../parsers/github'; +import { parseGithubForks, parseGithubPulls, parseGithubRepo } from '../parsers/github'; import { handleError } from '../utils'; const GITHUB_OWNER = '0xProject'; @@ -41,5 +41,19 @@ let connection: Connection; await GithubPullRequestRepository.save(pulls); } + // get forks and save + const GithubForkRepository = connection.getRepository(GithubFork); + numberOfRecords = RECORDS_PER_PAGE; + page = 1; + while (numberOfRecords === RECORDS_PER_PAGE) { + logUtils.log(`Fetching Github forks from API, page: ${page}.`); + const rawForks = await githubSource.getGithubForksAsync(page); + const forks = parseGithubForks(rawForks, observedTimestamp); + numberOfRecords = forks.length; + page++; + logUtils.log(`Saving ${forks.length} forks to database.`); + await GithubForkRepository.save(forks); + } + process.exit(0); })().catch(handleError); diff --git a/packages/pipeline/test/fixtures/github/api_v3_forks.json b/packages/pipeline/test/fixtures/github/api_v3_forks.json new file mode 100644 index 0000000000..62e0ed7022 --- /dev/null +++ b/packages/pipeline/test/fixtures/github/api_v3_forks.json @@ -0,0 +1,101 @@ +[ + { + "id": 174390905, + "node_id": "MDEwOlJlcG9zaXRvcnkxNzQzOTA5MDU=", + "name": "0x-monorepo", + "full_name": "AlphaSquadAlgorithms/0x-monorepo", + "private": false, + "owner": { + "login": "AlphaSquadAlgorithms", + "id": 47441730, + "node_id": "MDQ6VXNlcjQ3NDQxNzMw", + "avatar_url": "https://avatars0.githubusercontent.com/u/47441730?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AlphaSquadAlgorithms", + "html_url": "https://github.com/AlphaSquadAlgorithms", + "followers_url": "https://api.github.com/users/AlphaSquadAlgorithms/followers", + "following_url": "https://api.github.com/users/AlphaSquadAlgorithms/following{/other_user}", + "gists_url": "https://api.github.com/users/AlphaSquadAlgorithms/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AlphaSquadAlgorithms/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AlphaSquadAlgorithms/subscriptions", + "organizations_url": "https://api.github.com/users/AlphaSquadAlgorithms/orgs", + "repos_url": "https://api.github.com/users/AlphaSquadAlgorithms/repos", + "events_url": "https://api.github.com/users/AlphaSquadAlgorithms/events{/privacy}", + "received_events_url": "https://api.github.com/users/AlphaSquadAlgorithms/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo", + "description": "0x protocol monorepo - includes our smart contracts and many developer tools", + "fork": true, + "url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo", + "forks_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/forks", + "keys_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/teams", + "hooks_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/hooks", + "issue_events_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues/events{/number}", + "events_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/events", + "assignees_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/assignees{/user}", + "branches_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/branches{/branch}", + "tags_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/tags", + "blobs_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/languages", + "stargazers_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/stargazers", + "contributors_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/contributors", + "subscribers_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/subscribers", + "subscription_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/subscription", + "commits_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/contents/{+path}", + "compare_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/merges", + "archive_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/downloads", + "issues_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues{/number}", + "pulls_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/labels{/name}", + "releases_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/releases{/id}", + "deployments_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/deployments", + "created_at": "2019-03-07T17:32:08Z", + "updated_at": "2019-03-07T17:32:16Z", + "pushed_at": "2019-03-07T17:28:47Z", + "git_url": "git://github.com/AlphaSquadAlgorithms/0x-monorepo.git", + "ssh_url": "git@github.com:AlphaSquadAlgorithms/0x-monorepo.git", + "clone_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo.git", + "svn_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo", + "homepage": "", + "size": 86560, + "stargazers_count": 0, + "watchers_count": 0, + "language": "TypeScript", + "has_issues": false, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "development" + } +] \ No newline at end of file diff --git a/packages/pipeline/test/fixtures/github/api_v3_forks.ts b/packages/pipeline/test/fixtures/github/api_v3_forks.ts new file mode 100644 index 0000000000..e700efe88e --- /dev/null +++ b/packages/pipeline/test/fixtures/github/api_v3_forks.ts @@ -0,0 +1,22 @@ +import { GithubFork } from '../../../src/entities'; + +// To re-create the JSON file from the API (e.g. if the API output schema changes), run the below command: +// curl https://api.github.com/repos/0xProject/0x-monorepo/forks?per_page=1&page=1 +// docs here: https://developer.github.com/v3/repos/forks/#list-forks + +const ParsedGithubFork = new GithubFork(); +ParsedGithubFork.observedTimestamp = Date.now(); +ParsedGithubFork.name = '0x-monorepo'; +ParsedGithubFork.ownerLogin = 'AlphaSquadAlgorithms'; +ParsedGithubFork.createdAt = 1551979928000; // tslint:disable-line:custom-no-magic-numbers +ParsedGithubFork.updatedAt = 1551979936000; // tslint:disable-line:custom-no-magic-numbers +ParsedGithubFork.pushedAt = 1551979727000; // tslint:disable-line:custom-no-magic-numbers +ParsedGithubFork.size = 86560; // tslint:disable-line:custom-no-magic-numbers +ParsedGithubFork.stargazers = 0; +ParsedGithubFork.watchers = 0; +ParsedGithubFork.forks = 0; +ParsedGithubFork.openIssues = 0; +ParsedGithubFork.network = undefined; +ParsedGithubFork.subscribers = undefined; + +export { ParsedGithubFork }; diff --git a/packages/pipeline/test/fixtures/github/api_v3_pulls.ts b/packages/pipeline/test/fixtures/github/api_v3_pulls.ts index 0ae78be9c8..6c0e956c53 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_pulls.ts +++ b/packages/pipeline/test/fixtures/github/api_v3_pulls.ts @@ -4,7 +4,7 @@ import { GithubPullRequest } from '../../../src/entities'; // curl https://api.github.com/repos/0xProject/0x-monorepo/pulls?per_page=1&page=1 // docs here: https://developer.github.com/v3/pulls/#list-pull-requests -const ParsedGithubPulls: GithubPullRequest = { +const ParsedGithubPullRequest: GithubPullRequest = { observedTimestamp: Date.now(), repoName: '0x-monorepo', pullRequestNumber: 1684, @@ -16,4 +16,4 @@ const ParsedGithubPulls: GithubPullRequest = { closedAt: null, mergedAt: null, }; -export { ParsedGithubPulls }; +export { ParsedGithubPullRequest }; diff --git a/packages/pipeline/test/parsers/github/github_forks_test.ts b/packages/pipeline/test/parsers/github/github_forks_test.ts new file mode 100644 index 0000000000..1630cf069e --- /dev/null +++ b/packages/pipeline/test/parsers/github/github_forks_test.ts @@ -0,0 +1,27 @@ +import * as chai from 'chai'; +import 'mocha'; + +import { GithubForkResponse } from '../../../src/data_sources/github'; +import { parseGithubForks } from '../../../src/parsers/github'; + +import { ParsedGithubFork } from '../../fixtures/github/api_v3_forks'; +import * as githubForksResponse from '../../fixtures/github/api_v3_forks.json'; + +import { chaiSetup } from '../../utils/chai_setup'; + +chaiSetup.configure(); +const expect = chai.expect; + +// tslint:disable:custom-no-magic-numbers +describe('github_forks', () => { + describe('parseGithubForks', () => { + it('converts GithubForksResponse to GithubFork entities', () => { + const response: GithubForkResponse[] = githubForksResponse; + const expected = ParsedGithubFork; + const observedTimestamp = expected.observedTimestamp; + const actualList = parseGithubForks(response, observedTimestamp); + const actual = actualList[0]; + expect(actual).deep.equal(expected); + }); + }); +}); diff --git a/packages/pipeline/test/parsers/github/github_pulls_test.ts b/packages/pipeline/test/parsers/github/github_pulls_test.ts index 0dbc938989..398ea97f7c 100644 --- a/packages/pipeline/test/parsers/github/github_pulls_test.ts +++ b/packages/pipeline/test/parsers/github/github_pulls_test.ts @@ -5,7 +5,7 @@ import { GithubPullRequestResponse } from '../../../src/data_sources/github'; import { parseGithubPulls } from '../../../src/parsers/github'; import { chaiSetup } from '../../utils/chai_setup'; -import { ParsedGithubPulls } from '../../fixtures/github/api_v3_pulls'; +import { ParsedGithubPullRequest } from '../../fixtures/github/api_v3_pulls'; import * as githubPullsResponse from '../../fixtures/github/api_v3_pulls.json'; chaiSetup.configure(); @@ -16,11 +16,11 @@ describe('github_pulls', () => { describe('parseGithubPulls', () => { it('converts GithubPullsResponse to GithubPullRequest entities', () => { const response: GithubPullRequestResponse[] = githubPullsResponse; - const expected = ParsedGithubPulls; + const expected = ParsedGithubPullRequest; const observedTimestamp = expected.observedTimestamp; const actualList = parseGithubPulls(response, observedTimestamp); - const actualPull = actualList[0]; - expect(actualPull).deep.equal(expected); + const actual = actualList[0]; + expect(actual).deep.equal(expected); }); }); }); diff --git a/packages/pipeline/test/parsers/github/github_repo_test.ts b/packages/pipeline/test/parsers/github/github_repo_test.ts index 2ee2258982..e3daa07126 100644 --- a/packages/pipeline/test/parsers/github/github_repo_test.ts +++ b/packages/pipeline/test/parsers/github/github_repo_test.ts @@ -1,13 +1,13 @@ import * as chai from 'chai'; import 'mocha'; +import { ParsedGithubRepo } from '../../fixtures/github/api_v3_repo'; +import * as githubRepoResponse from '../../fixtures/github/api_v3_repo.json'; + import { GithubRepoResponse } from '../../../src/data_sources/github'; import { parseGithubRepo } from '../../../src/parsers/github'; import { chaiSetup } from '../../utils/chai_setup'; -import { ParsedGithubRepo } from '../../fixtures/github/api_v3_repo'; -import * as githubRepoResponse from '../../fixtures/github/api_v3_repo.json'; - chaiSetup.configure(); const expect = chai.expect; diff --git a/packages/pipeline/test/utils/chai_setup.ts b/packages/pipeline/test/utils/chai_setup.ts index 1a87330932..632c456de4 100644 --- a/packages/pipeline/test/utils/chai_setup.ts +++ b/packages/pipeline/test/utils/chai_setup.ts @@ -9,5 +9,6 @@ export const chaiSetup = { chai.use(ChaiBigNumber()); chai.use(dirtyChai); chai.use(chaiAsPromised); + chai.config.truncateThreshold = 0; }, }; diff --git a/packages/pipeline/tsconfig.json b/packages/pipeline/tsconfig.json index dac96c1466..540e8940be 100644 --- a/packages/pipeline/tsconfig.json +++ b/packages/pipeline/tsconfig.json @@ -16,6 +16,7 @@ "./test/fixtures/copper/api_v1_list_opportunities.json", "./test/fixtures/etherscan/api_v1_accounts_transactions.json", "./test/fixtures/github/api_v3_repo.json", - "./test/fixtures/github/api_v3_pulls.json" + "./test/fixtures/github/api_v3_pulls.json", + "./test/fixtures/github/api_v3_forks.json" ] } From 88704ce4172f647315a2df829a0b8277894e4bed Mon Sep 17 00:00:00 2001 From: askeluv Date: Fri, 8 Mar 2019 20:07:26 +0800 Subject: [PATCH 04/95] Prettier --- .../1552016339539-CreateGithubRepo.ts | 8 +- .../1552024155243-CreateGithubPullRequest.ts | 7 +- .../1552044685566-CreateGithubFork.ts | 8 +- .../pipeline/src/data_sources/github/index.ts | 6 +- packages/pipeline/src/entities/github_fork.ts | 2 - .../src/entities/github_pull_request.ts | 1 - packages/pipeline/src/entities/github_repo.ts | 1 - packages/pipeline/src/parsers/github/forks.ts | 2 +- packages/pipeline/src/parsers/github/pulls.ts | 7 +- .../test/fixtures/github/api_v3_forks.json | 200 +++--- .../test/fixtures/github/api_v3_pulls.json | 652 +++++++++--------- .../test/fixtures/github/api_v3_pulls.ts | 22 +- .../test/fixtures/github/api_v3_repo.json | 85 ++- .../test/fixtures/github/api_v3_repo.ts | 26 +- 14 files changed, 505 insertions(+), 522 deletions(-) diff --git a/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts b/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts index 84c9397267..0babf1d19e 100644 --- a/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts +++ b/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts @@ -1,9 +1,9 @@ -import {MigrationInterface, QueryRunner, Table} from "typeorm"; +import { MigrationInterface, QueryRunner, Table } from 'typeorm'; const table = new Table({ name: 'raw.github_repo', columns: [ - { name: 'observed_timestamp', type: 'numeric', isPrimary: true}, + { name: 'observed_timestamp', type: 'numeric', isPrimary: true }, { name: 'name', type: 'varchar', isPrimary: true }, { name: 'created_at', type: 'numeric', isNullable: false }, @@ -16,12 +16,11 @@ const table = new Table({ { name: 'forks', type: 'numeric', isNullable: false }, { name: 'open_issues', type: 'numeric', isNullable: false }, { name: 'network', type: 'numeric', isNullable: false }, - { name: 'subscribers', type: 'numeric', isNullable: false } + { name: 'subscribers', type: 'numeric', isNullable: false }, ], }); export class CreateGithubRepo1552016339539 implements MigrationInterface { - public async up(queryRunner: QueryRunner): Promise { await queryRunner.createTable(table); } @@ -29,5 +28,4 @@ export class CreateGithubRepo1552016339539 implements MigrationInterface { public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable(table); } - } diff --git a/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts b/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts index 14e6f64d41..d0e8ef6908 100644 --- a/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts +++ b/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts @@ -1,9 +1,9 @@ -import {MigrationInterface, QueryRunner, Table} from "typeorm"; +import { MigrationInterface, QueryRunner, Table } from 'typeorm'; const table = new Table({ name: 'raw.github_pull_request', columns: [ - { name: 'observed_timestamp', type: 'numeric', isPrimary: true}, + { name: 'observed_timestamp', type: 'numeric', isPrimary: true }, { name: 'repo_name', type: 'varchar', isPrimary: true }, { name: 'pull_request_number', type: 'numeric', isPrimary: true }, @@ -15,12 +15,10 @@ const table = new Table({ { name: 'state', type: 'varchar', isNullable: false }, { name: 'title', type: 'varchar', isNullable: false }, { name: 'user_login', type: 'varchar', isNullable: false }, - ], }); export class CreateGithubPullRequest1552024155243 implements MigrationInterface { - public async up(queryRunner: QueryRunner): Promise { await queryRunner.createTable(table); } @@ -28,5 +26,4 @@ export class CreateGithubPullRequest1552024155243 implements MigrationInterface public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable(table); } - } diff --git a/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts b/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts index 07e8c11ed5..b24eb74c51 100644 --- a/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts +++ b/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts @@ -1,9 +1,9 @@ -import {MigrationInterface, QueryRunner, Table} from "typeorm"; +import { MigrationInterface, QueryRunner, Table } from 'typeorm'; const table = new Table({ name: 'raw.github_fork', columns: [ - { name: 'observed_timestamp', type: 'numeric', isPrimary: true}, + { name: 'observed_timestamp', type: 'numeric', isPrimary: true }, { name: 'name', type: 'varchar', isPrimary: true }, { name: 'owner_login', type: 'varchar', isPrimary: true }, @@ -17,12 +17,11 @@ const table = new Table({ { name: 'forks', type: 'numeric', isNullable: false }, { name: 'open_issues', type: 'numeric', isNullable: false }, { name: 'network', type: 'numeric', isNullable: true }, - { name: 'subscribers', type: 'numeric', isNullable: true } + { name: 'subscribers', type: 'numeric', isNullable: true }, ], }); export class CreateGithubFork1552044685566 implements MigrationInterface { - public async up(queryRunner: QueryRunner): Promise { await queryRunner.createTable(table); } @@ -30,5 +29,4 @@ export class CreateGithubFork1552044685566 implements MigrationInterface { public async down(queryRunner: QueryRunner): Promise { await queryRunner.dropTable(table); } - } diff --git a/packages/pipeline/src/data_sources/github/index.ts b/packages/pipeline/src/data_sources/github/index.ts index 9d6acb25d1..4189d7c082 100644 --- a/packages/pipeline/src/data_sources/github/index.ts +++ b/packages/pipeline/src/data_sources/github/index.ts @@ -70,9 +70,9 @@ export class GithubSource { return respJson; } - /** - * Call Github API for forks of repo and return result - paginated. - */ + /** + * Call Github API for forks of repo and return result - paginated. + */ public async getGithubForksAsync(page: number): Promise { const resp = await fetchAsync(`${this._forksUrl}${page}`); const respJson: GithubForkResponse[] = await resp.json(); diff --git a/packages/pipeline/src/entities/github_fork.ts b/packages/pipeline/src/entities/github_fork.ts index 8d9696ddcd..84befbb96c 100644 --- a/packages/pipeline/src/entities/github_fork.ts +++ b/packages/pipeline/src/entities/github_fork.ts @@ -4,7 +4,6 @@ import { numberToBigIntTransformer } from '../utils'; @Entity({ name: 'github_fork', schema: 'raw' }) export class GithubFork { - @PrimaryColumn({ name: 'observed_timestamp', type: 'bigint', transformer: numberToBigIntTransformer }) public observedTimestamp!: number; @@ -43,5 +42,4 @@ export class GithubFork { @Column({ name: 'subscribers', type: 'integer', nullable: true }) public subscribers?: number; - } diff --git a/packages/pipeline/src/entities/github_pull_request.ts b/packages/pipeline/src/entities/github_pull_request.ts index 63396ba274..8c17ff5ec2 100644 --- a/packages/pipeline/src/entities/github_pull_request.ts +++ b/packages/pipeline/src/entities/github_pull_request.ts @@ -33,5 +33,4 @@ export class GithubPullRequest { @Column({ name: 'user_login' }) public userLogin!: string; - } diff --git a/packages/pipeline/src/entities/github_repo.ts b/packages/pipeline/src/entities/github_repo.ts index 364fa7f883..c0c81f4d30 100644 --- a/packages/pipeline/src/entities/github_repo.ts +++ b/packages/pipeline/src/entities/github_repo.ts @@ -39,5 +39,4 @@ export class GithubRepo { @Column({ name: 'subscribers', transformer: numberToBigIntTransformer }) public subscribers?: number; - } diff --git a/packages/pipeline/src/parsers/github/forks.ts b/packages/pipeline/src/parsers/github/forks.ts index dfe324359a..842769aec8 100644 --- a/packages/pipeline/src/parsers/github/forks.ts +++ b/packages/pipeline/src/parsers/github/forks.ts @@ -6,7 +6,7 @@ import { GithubFork } from '../../entities'; * @param response A Github response from the API. */ export function parseGithubForks(response: GithubForkResponse[], observedTimestamp: number): GithubFork[] { - const result: GithubFork[] = response.map( fork => { + const result: GithubFork[] = response.map(fork => { const parsedFork = new GithubFork(); parsedFork.observedTimestamp = observedTimestamp; parsedFork.name = fork.name; diff --git a/packages/pipeline/src/parsers/github/pulls.ts b/packages/pipeline/src/parsers/github/pulls.ts index f239eae5b8..cebf773366 100644 --- a/packages/pipeline/src/parsers/github/pulls.ts +++ b/packages/pipeline/src/parsers/github/pulls.ts @@ -5,8 +5,11 @@ import { GithubPullRequest } from '../../entities'; * Converts a Github response from the API into an GithubRepo entity. * @param rawRepo A Github response from the API into an GithubRepo entity. */ -export function parseGithubPulls(response: GithubPullRequestResponse[], observedTimestamp: number): GithubPullRequest[] { - return response.map( pull => { +export function parseGithubPulls( + response: GithubPullRequestResponse[], + observedTimestamp: number, +): GithubPullRequest[] { + return response.map(pull => { const parsedPullRequest = new GithubPullRequest(); parsedPullRequest.observedTimestamp = observedTimestamp; parsedPullRequest.repoName = pull.base.repo.name; diff --git a/packages/pipeline/test/fixtures/github/api_v3_forks.json b/packages/pipeline/test/fixtures/github/api_v3_forks.json index 62e0ed7022..9a65388e43 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_forks.json +++ b/packages/pipeline/test/fixtures/github/api_v3_forks.json @@ -1,101 +1,101 @@ [ - { - "id": 174390905, - "node_id": "MDEwOlJlcG9zaXRvcnkxNzQzOTA5MDU=", - "name": "0x-monorepo", - "full_name": "AlphaSquadAlgorithms/0x-monorepo", - "private": false, - "owner": { - "login": "AlphaSquadAlgorithms", - "id": 47441730, - "node_id": "MDQ6VXNlcjQ3NDQxNzMw", - "avatar_url": "https://avatars0.githubusercontent.com/u/47441730?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/AlphaSquadAlgorithms", - "html_url": "https://github.com/AlphaSquadAlgorithms", - "followers_url": "https://api.github.com/users/AlphaSquadAlgorithms/followers", - "following_url": "https://api.github.com/users/AlphaSquadAlgorithms/following{/other_user}", - "gists_url": "https://api.github.com/users/AlphaSquadAlgorithms/gists{/gist_id}", - "starred_url": "https://api.github.com/users/AlphaSquadAlgorithms/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/AlphaSquadAlgorithms/subscriptions", - "organizations_url": "https://api.github.com/users/AlphaSquadAlgorithms/orgs", - "repos_url": "https://api.github.com/users/AlphaSquadAlgorithms/repos", - "events_url": "https://api.github.com/users/AlphaSquadAlgorithms/events{/privacy}", - "received_events_url": "https://api.github.com/users/AlphaSquadAlgorithms/received_events", - "type": "User", - "site_admin": false - }, - "html_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo", - "description": "0x protocol monorepo - includes our smart contracts and many developer tools", - "fork": true, - "url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo", - "forks_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/forks", - "keys_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/teams", - "hooks_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/hooks", - "issue_events_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues/events{/number}", - "events_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/events", - "assignees_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/assignees{/user}", - "branches_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/branches{/branch}", - "tags_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/tags", - "blobs_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/statuses/{sha}", - "languages_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/languages", - "stargazers_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/stargazers", - "contributors_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/contributors", - "subscribers_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/subscribers", - "subscription_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/subscription", - "commits_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/contents/{+path}", - "compare_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/merges", - "archive_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/downloads", - "issues_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues{/number}", - "pulls_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/pulls{/number}", - "milestones_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/milestones{/number}", - "notifications_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/labels{/name}", - "releases_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/releases{/id}", - "deployments_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/deployments", - "created_at": "2019-03-07T17:32:08Z", - "updated_at": "2019-03-07T17:32:16Z", - "pushed_at": "2019-03-07T17:28:47Z", - "git_url": "git://github.com/AlphaSquadAlgorithms/0x-monorepo.git", - "ssh_url": "git@github.com:AlphaSquadAlgorithms/0x-monorepo.git", - "clone_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo.git", - "svn_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo", - "homepage": "", - "size": 86560, - "stargazers_count": 0, - "watchers_count": 0, - "language": "TypeScript", - "has_issues": false, - "has_projects": true, - "has_downloads": true, - "has_wiki": false, - "has_pages": false, - "forks_count": 0, - "mirror_url": null, - "archived": false, - "open_issues_count": 0, - "license": { - "key": "other", - "name": "Other", - "spdx_id": "NOASSERTION", - "url": null, - "node_id": "MDc6TGljZW5zZTA=" - }, - "forks": 0, - "open_issues": 0, - "watchers": 0, - "default_branch": "development" - } -] \ No newline at end of file + { + "id": 174390905, + "node_id": "MDEwOlJlcG9zaXRvcnkxNzQzOTA5MDU=", + "name": "0x-monorepo", + "full_name": "AlphaSquadAlgorithms/0x-monorepo", + "private": false, + "owner": { + "login": "AlphaSquadAlgorithms", + "id": 47441730, + "node_id": "MDQ6VXNlcjQ3NDQxNzMw", + "avatar_url": "https://avatars0.githubusercontent.com/u/47441730?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/AlphaSquadAlgorithms", + "html_url": "https://github.com/AlphaSquadAlgorithms", + "followers_url": "https://api.github.com/users/AlphaSquadAlgorithms/followers", + "following_url": "https://api.github.com/users/AlphaSquadAlgorithms/following{/other_user}", + "gists_url": "https://api.github.com/users/AlphaSquadAlgorithms/gists{/gist_id}", + "starred_url": "https://api.github.com/users/AlphaSquadAlgorithms/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AlphaSquadAlgorithms/subscriptions", + "organizations_url": "https://api.github.com/users/AlphaSquadAlgorithms/orgs", + "repos_url": "https://api.github.com/users/AlphaSquadAlgorithms/repos", + "events_url": "https://api.github.com/users/AlphaSquadAlgorithms/events{/privacy}", + "received_events_url": "https://api.github.com/users/AlphaSquadAlgorithms/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo", + "description": "0x protocol monorepo - includes our smart contracts and many developer tools", + "fork": true, + "url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo", + "forks_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/forks", + "keys_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/teams", + "hooks_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/hooks", + "issue_events_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues/events{/number}", + "events_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/events", + "assignees_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/assignees{/user}", + "branches_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/branches{/branch}", + "tags_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/tags", + "blobs_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/languages", + "stargazers_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/stargazers", + "contributors_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/contributors", + "subscribers_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/subscribers", + "subscription_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/subscription", + "commits_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/contents/{+path}", + "compare_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/merges", + "archive_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/downloads", + "issues_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues{/number}", + "pulls_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/labels{/name}", + "releases_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/releases{/id}", + "deployments_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/deployments", + "created_at": "2019-03-07T17:32:08Z", + "updated_at": "2019-03-07T17:32:16Z", + "pushed_at": "2019-03-07T17:28:47Z", + "git_url": "git://github.com/AlphaSquadAlgorithms/0x-monorepo.git", + "ssh_url": "git@github.com:AlphaSquadAlgorithms/0x-monorepo.git", + "clone_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo.git", + "svn_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo", + "homepage": "", + "size": 86560, + "stargazers_count": 0, + "watchers_count": 0, + "language": "TypeScript", + "has_issues": false, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "development" + } +] diff --git a/packages/pipeline/test/fixtures/github/api_v3_pulls.json b/packages/pipeline/test/fixtures/github/api_v3_pulls.json index d7580d683e..8dc61b9e6b 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_pulls.json +++ b/packages/pipeline/test/fixtures/github/api_v3_pulls.json @@ -1,335 +1,327 @@ [ - { - "url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684", - "id": 259358832, - "node_id": "MDExOlB1bGxSZXF1ZXN0MjU5MzU4ODMy", - "html_url": "https://github.com/0xProject/0x-monorepo/pull/1684", - "diff_url": "https://github.com/0xProject/0x-monorepo/pull/1684.diff", - "patch_url": "https://github.com/0xProject/0x-monorepo/pull/1684.patch", - "issue_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684", - "number": 1684, - "state": "open", - "locked": false, - "title": "[WIP] Pull Github data", - "user": { - "login": "askeluv", - "id": 2386262, - "node_id": "MDQ6VXNlcjIzODYyNjI=", - "avatar_url": "https://avatars2.githubusercontent.com/u/2386262?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/askeluv", - "html_url": "https://github.com/askeluv", - "followers_url": "https://api.github.com/users/askeluv/followers", - "following_url": "https://api.github.com/users/askeluv/following{/other_user}", - "gists_url": "https://api.github.com/users/askeluv/gists{/gist_id}", - "starred_url": "https://api.github.com/users/askeluv/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/askeluv/subscriptions", - "organizations_url": "https://api.github.com/users/askeluv/orgs", - "repos_url": "https://api.github.com/users/askeluv/repos", - "events_url": "https://api.github.com/users/askeluv/events{/privacy}", - "received_events_url": "https://api.github.com/users/askeluv/received_events", - "type": "User", - "site_admin": false - }, - "body": "## Description\r\n\r\nPulling Github data so we can start monitoring metrics related to the monorepo.\r\n\r\n## Testing instructions\r\n\r\n```\r\nyarn build\r\nyarn migrate:run\r\nyarn test\r\nyarn test:db\r\nnode lib/src/scripts/pull_github.js\r\n```\r\n\r\n## Types of changes\r\n\r\nNew feature (non-breaking change which adds functionality)\r\n\r\n## Checklist:\r\n\r\n- [x] Github repo entity\r\n- [ ] Github pull request entity\r\n- [ ] Github fork entity\r\n", - "created_at": "2019-03-08T04:36:28Z", - "updated_at": "2019-03-08T04:36:28Z", - "closed_at": null, - "merged_at": null, - "merge_commit_sha": "85d164aedbf17d96f11d20b2f08eeaca0defb6e2", - "assignee": null, - "assignees": [ - - ], - "requested_reviewers": [ - - ], - "requested_teams": [ - - ], - "labels": [ - - ], - "milestone": null, - "commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/commits", - "review_comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/comments", - "review_comment_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments{/number}", - "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684/comments", - "statuses_url": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/1991bd437f798e52d6210cf4fac173a10e30f0bd", - "head": { - "label": "0xProject:pull-github-data", - "ref": "pull-github-data", - "sha": "1991bd437f798e52d6210cf4fac173a10e30f0bd", - "user": { - "login": "0xProject", - "id": 24832717, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", - "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/0xProject", - "html_url": "https://github.com/0xProject", - "followers_url": "https://api.github.com/users/0xProject/followers", - "following_url": "https://api.github.com/users/0xProject/following{/other_user}", - "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", - "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", - "organizations_url": "https://api.github.com/users/0xProject/orgs", - "repos_url": "https://api.github.com/users/0xProject/repos", - "events_url": "https://api.github.com/users/0xProject/events{/privacy}", - "received_events_url": "https://api.github.com/users/0xProject/received_events", - "type": "Organization", - "site_admin": false - }, - "repo": { - "id": 92181371, - "node_id": "MDEwOlJlcG9zaXRvcnk5MjE4MTM3MQ==", - "name": "0x-monorepo", - "full_name": "0xProject/0x-monorepo", - "private": false, - "owner": { - "login": "0xProject", - "id": 24832717, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", - "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/0xProject", - "html_url": "https://github.com/0xProject", - "followers_url": "https://api.github.com/users/0xProject/followers", - "following_url": "https://api.github.com/users/0xProject/following{/other_user}", - "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", - "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", - "organizations_url": "https://api.github.com/users/0xProject/orgs", - "repos_url": "https://api.github.com/users/0xProject/repos", - "events_url": "https://api.github.com/users/0xProject/events{/privacy}", - "received_events_url": "https://api.github.com/users/0xProject/received_events", - "type": "Organization", - "site_admin": false + { + "url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684", + "id": 259358832, + "node_id": "MDExOlB1bGxSZXF1ZXN0MjU5MzU4ODMy", + "html_url": "https://github.com/0xProject/0x-monorepo/pull/1684", + "diff_url": "https://github.com/0xProject/0x-monorepo/pull/1684.diff", + "patch_url": "https://github.com/0xProject/0x-monorepo/pull/1684.patch", + "issue_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684", + "number": 1684, + "state": "open", + "locked": false, + "title": "[WIP] Pull Github data", + "user": { + "login": "askeluv", + "id": 2386262, + "node_id": "MDQ6VXNlcjIzODYyNjI=", + "avatar_url": "https://avatars2.githubusercontent.com/u/2386262?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/askeluv", + "html_url": "https://github.com/askeluv", + "followers_url": "https://api.github.com/users/askeluv/followers", + "following_url": "https://api.github.com/users/askeluv/following{/other_user}", + "gists_url": "https://api.github.com/users/askeluv/gists{/gist_id}", + "starred_url": "https://api.github.com/users/askeluv/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/askeluv/subscriptions", + "organizations_url": "https://api.github.com/users/askeluv/orgs", + "repos_url": "https://api.github.com/users/askeluv/repos", + "events_url": "https://api.github.com/users/askeluv/events{/privacy}", + "received_events_url": "https://api.github.com/users/askeluv/received_events", + "type": "User", + "site_admin": false }, - "html_url": "https://github.com/0xProject/0x-monorepo", - "description": "0x protocol monorepo - includes our smart contracts and many developer tools", - "fork": false, - "url": "https://api.github.com/repos/0xProject/0x-monorepo", - "forks_url": "https://api.github.com/repos/0xProject/0x-monorepo/forks", - "keys_url": "https://api.github.com/repos/0xProject/0x-monorepo/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/0xProject/0x-monorepo/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/0xProject/0x-monorepo/teams", - "hooks_url": "https://api.github.com/repos/0xProject/0x-monorepo/hooks", - "issue_events_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/events{/number}", - "events_url": "https://api.github.com/repos/0xProject/0x-monorepo/events", - "assignees_url": "https://api.github.com/repos/0xProject/0x-monorepo/assignees{/user}", - "branches_url": "https://api.github.com/repos/0xProject/0x-monorepo/branches{/branch}", - "tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/tags", - "blobs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/{sha}", - "languages_url": "https://api.github.com/repos/0xProject/0x-monorepo/languages", - "stargazers_url": "https://api.github.com/repos/0xProject/0x-monorepo/stargazers", - "contributors_url": "https://api.github.com/repos/0xProject/0x-monorepo/contributors", - "subscribers_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscribers", - "subscription_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscription", - "commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/{+path}", - "compare_url": "https://api.github.com/repos/0xProject/0x-monorepo/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/0xProject/0x-monorepo/merges", - "archive_url": "https://api.github.com/repos/0xProject/0x-monorepo/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/0xProject/0x-monorepo/downloads", - "issues_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues{/number}", - "pulls_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls{/number}", - "milestones_url": "https://api.github.com/repos/0xProject/0x-monorepo/milestones{/number}", - "notifications_url": "https://api.github.com/repos/0xProject/0x-monorepo/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/0xProject/0x-monorepo/labels{/name}", - "releases_url": "https://api.github.com/repos/0xProject/0x-monorepo/releases{/id}", - "deployments_url": "https://api.github.com/repos/0xProject/0x-monorepo/deployments", - "created_at": "2017-05-23T14:17:33Z", - "updated_at": "2019-03-08T00:48:18Z", - "pushed_at": "2019-03-08T04:36:28Z", - "git_url": "git://github.com/0xProject/0x-monorepo.git", - "ssh_url": "git@github.com:0xProject/0x-monorepo.git", - "clone_url": "https://github.com/0xProject/0x-monorepo.git", - "svn_url": "https://github.com/0xProject/0x-monorepo", - "homepage": "", - "size": 86647, - "stargazers_count": 989, - "watchers_count": 989, - "language": "TypeScript", - "has_issues": true, - "has_projects": false, - "has_downloads": true, - "has_wiki": false, - "has_pages": false, - "forks_count": 295, - "mirror_url": null, - "archived": false, - "open_issues_count": 46, - "license": { - "key": "other", - "name": "Other", - "spdx_id": "NOASSERTION", - "url": null, - "node_id": "MDc6TGljZW5zZTA=" + "body": "## Description\r\n\r\nPulling Github data so we can start monitoring metrics related to the monorepo.\r\n\r\n## Testing instructions\r\n\r\n```\r\nyarn build\r\nyarn migrate:run\r\nyarn test\r\nyarn test:db\r\nnode lib/src/scripts/pull_github.js\r\n```\r\n\r\n## Types of changes\r\n\r\nNew feature (non-breaking change which adds functionality)\r\n\r\n## Checklist:\r\n\r\n- [x] Github repo entity\r\n- [ ] Github pull request entity\r\n- [ ] Github fork entity\r\n", + "created_at": "2019-03-08T04:36:28Z", + "updated_at": "2019-03-08T04:36:28Z", + "closed_at": null, + "merged_at": null, + "merge_commit_sha": "85d164aedbf17d96f11d20b2f08eeaca0defb6e2", + "assignee": null, + "assignees": [], + "requested_reviewers": [], + "requested_teams": [], + "labels": [], + "milestone": null, + "commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/commits", + "review_comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/comments", + "review_comment_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684/comments", + "statuses_url": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/1991bd437f798e52d6210cf4fac173a10e30f0bd", + "head": { + "label": "0xProject:pull-github-data", + "ref": "pull-github-data", + "sha": "1991bd437f798e52d6210cf4fac173a10e30f0bd", + "user": { + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 92181371, + "node_id": "MDEwOlJlcG9zaXRvcnk5MjE4MTM3MQ==", + "name": "0x-monorepo", + "full_name": "0xProject/0x-monorepo", + "private": false, + "owner": { + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/0xProject/0x-monorepo", + "description": "0x protocol monorepo - includes our smart contracts and many developer tools", + "fork": false, + "url": "https://api.github.com/repos/0xProject/0x-monorepo", + "forks_url": "https://api.github.com/repos/0xProject/0x-monorepo/forks", + "keys_url": "https://api.github.com/repos/0xProject/0x-monorepo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/0xProject/0x-monorepo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/0xProject/0x-monorepo/teams", + "hooks_url": "https://api.github.com/repos/0xProject/0x-monorepo/hooks", + "issue_events_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/events{/number}", + "events_url": "https://api.github.com/repos/0xProject/0x-monorepo/events", + "assignees_url": "https://api.github.com/repos/0xProject/0x-monorepo/assignees{/user}", + "branches_url": "https://api.github.com/repos/0xProject/0x-monorepo/branches{/branch}", + "tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/tags", + "blobs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/0xProject/0x-monorepo/languages", + "stargazers_url": "https://api.github.com/repos/0xProject/0x-monorepo/stargazers", + "contributors_url": "https://api.github.com/repos/0xProject/0x-monorepo/contributors", + "subscribers_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscribers", + "subscription_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscription", + "commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/{+path}", + "compare_url": "https://api.github.com/repos/0xProject/0x-monorepo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/0xProject/0x-monorepo/merges", + "archive_url": "https://api.github.com/repos/0xProject/0x-monorepo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/0xProject/0x-monorepo/downloads", + "issues_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues{/number}", + "pulls_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/0xProject/0x-monorepo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/0xProject/0x-monorepo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/0xProject/0x-monorepo/labels{/name}", + "releases_url": "https://api.github.com/repos/0xProject/0x-monorepo/releases{/id}", + "deployments_url": "https://api.github.com/repos/0xProject/0x-monorepo/deployments", + "created_at": "2017-05-23T14:17:33Z", + "updated_at": "2019-03-08T00:48:18Z", + "pushed_at": "2019-03-08T04:36:28Z", + "git_url": "git://github.com/0xProject/0x-monorepo.git", + "ssh_url": "git@github.com:0xProject/0x-monorepo.git", + "clone_url": "https://github.com/0xProject/0x-monorepo.git", + "svn_url": "https://github.com/0xProject/0x-monorepo", + "homepage": "", + "size": 86647, + "stargazers_count": 989, + "watchers_count": 989, + "language": "TypeScript", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 295, + "mirror_url": null, + "archived": false, + "open_issues_count": 46, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 295, + "open_issues": 46, + "watchers": 989, + "default_branch": "development" + } }, - "forks": 295, - "open_issues": 46, - "watchers": 989, - "default_branch": "development" - } - }, - "base": { - "label": "0xProject:development", - "ref": "development", - "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "user": { - "login": "0xProject", - "id": 24832717, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", - "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/0xProject", - "html_url": "https://github.com/0xProject", - "followers_url": "https://api.github.com/users/0xProject/followers", - "following_url": "https://api.github.com/users/0xProject/following{/other_user}", - "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", - "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", - "organizations_url": "https://api.github.com/users/0xProject/orgs", - "repos_url": "https://api.github.com/users/0xProject/repos", - "events_url": "https://api.github.com/users/0xProject/events{/privacy}", - "received_events_url": "https://api.github.com/users/0xProject/received_events", - "type": "Organization", - "site_admin": false - }, - "repo": { - "id": 92181371, - "node_id": "MDEwOlJlcG9zaXRvcnk5MjE4MTM3MQ==", - "name": "0x-monorepo", - "full_name": "0xProject/0x-monorepo", - "private": false, - "owner": { - "login": "0xProject", - "id": 24832717, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", - "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/0xProject", - "html_url": "https://github.com/0xProject", - "followers_url": "https://api.github.com/users/0xProject/followers", - "following_url": "https://api.github.com/users/0xProject/following{/other_user}", - "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", - "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", - "organizations_url": "https://api.github.com/users/0xProject/orgs", - "repos_url": "https://api.github.com/users/0xProject/repos", - "events_url": "https://api.github.com/users/0xProject/events{/privacy}", - "received_events_url": "https://api.github.com/users/0xProject/received_events", - "type": "Organization", - "site_admin": false + "base": { + "label": "0xProject:development", + "ref": "development", + "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "user": { + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 92181371, + "node_id": "MDEwOlJlcG9zaXRvcnk5MjE4MTM3MQ==", + "name": "0x-monorepo", + "full_name": "0xProject/0x-monorepo", + "private": false, + "owner": { + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/0xProject/0x-monorepo", + "description": "0x protocol monorepo - includes our smart contracts and many developer tools", + "fork": false, + "url": "https://api.github.com/repos/0xProject/0x-monorepo", + "forks_url": "https://api.github.com/repos/0xProject/0x-monorepo/forks", + "keys_url": "https://api.github.com/repos/0xProject/0x-monorepo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/0xProject/0x-monorepo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/0xProject/0x-monorepo/teams", + "hooks_url": "https://api.github.com/repos/0xProject/0x-monorepo/hooks", + "issue_events_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/events{/number}", + "events_url": "https://api.github.com/repos/0xProject/0x-monorepo/events", + "assignees_url": "https://api.github.com/repos/0xProject/0x-monorepo/assignees{/user}", + "branches_url": "https://api.github.com/repos/0xProject/0x-monorepo/branches{/branch}", + "tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/tags", + "blobs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/0xProject/0x-monorepo/languages", + "stargazers_url": "https://api.github.com/repos/0xProject/0x-monorepo/stargazers", + "contributors_url": "https://api.github.com/repos/0xProject/0x-monorepo/contributors", + "subscribers_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscribers", + "subscription_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscription", + "commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/{+path}", + "compare_url": "https://api.github.com/repos/0xProject/0x-monorepo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/0xProject/0x-monorepo/merges", + "archive_url": "https://api.github.com/repos/0xProject/0x-monorepo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/0xProject/0x-monorepo/downloads", + "issues_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues{/number}", + "pulls_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/0xProject/0x-monorepo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/0xProject/0x-monorepo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/0xProject/0x-monorepo/labels{/name}", + "releases_url": "https://api.github.com/repos/0xProject/0x-monorepo/releases{/id}", + "deployments_url": "https://api.github.com/repos/0xProject/0x-monorepo/deployments", + "created_at": "2017-05-23T14:17:33Z", + "updated_at": "2019-03-08T00:48:18Z", + "pushed_at": "2019-03-08T04:36:28Z", + "git_url": "git://github.com/0xProject/0x-monorepo.git", + "ssh_url": "git@github.com:0xProject/0x-monorepo.git", + "clone_url": "https://github.com/0xProject/0x-monorepo.git", + "svn_url": "https://github.com/0xProject/0x-monorepo", + "homepage": "", + "size": 86647, + "stargazers_count": 989, + "watchers_count": 989, + "language": "TypeScript", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 295, + "mirror_url": null, + "archived": false, + "open_issues_count": 46, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 295, + "open_issues": 46, + "watchers": 989, + "default_branch": "development" + } }, - "html_url": "https://github.com/0xProject/0x-monorepo", - "description": "0x protocol monorepo - includes our smart contracts and many developer tools", - "fork": false, - "url": "https://api.github.com/repos/0xProject/0x-monorepo", - "forks_url": "https://api.github.com/repos/0xProject/0x-monorepo/forks", - "keys_url": "https://api.github.com/repos/0xProject/0x-monorepo/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/0xProject/0x-monorepo/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/0xProject/0x-monorepo/teams", - "hooks_url": "https://api.github.com/repos/0xProject/0x-monorepo/hooks", - "issue_events_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/events{/number}", - "events_url": "https://api.github.com/repos/0xProject/0x-monorepo/events", - "assignees_url": "https://api.github.com/repos/0xProject/0x-monorepo/assignees{/user}", - "branches_url": "https://api.github.com/repos/0xProject/0x-monorepo/branches{/branch}", - "tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/tags", - "blobs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/{sha}", - "languages_url": "https://api.github.com/repos/0xProject/0x-monorepo/languages", - "stargazers_url": "https://api.github.com/repos/0xProject/0x-monorepo/stargazers", - "contributors_url": "https://api.github.com/repos/0xProject/0x-monorepo/contributors", - "subscribers_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscribers", - "subscription_url": "https://api.github.com/repos/0xProject/0x-monorepo/subscription", - "commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/{+path}", - "compare_url": "https://api.github.com/repos/0xProject/0x-monorepo/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/0xProject/0x-monorepo/merges", - "archive_url": "https://api.github.com/repos/0xProject/0x-monorepo/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/0xProject/0x-monorepo/downloads", - "issues_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues{/number}", - "pulls_url": "https://api.github.com/repos/0xProject/0x-monorepo/pulls{/number}", - "milestones_url": "https://api.github.com/repos/0xProject/0x-monorepo/milestones{/number}", - "notifications_url": "https://api.github.com/repos/0xProject/0x-monorepo/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/0xProject/0x-monorepo/labels{/name}", - "releases_url": "https://api.github.com/repos/0xProject/0x-monorepo/releases{/id}", - "deployments_url": "https://api.github.com/repos/0xProject/0x-monorepo/deployments", - "created_at": "2017-05-23T14:17:33Z", - "updated_at": "2019-03-08T00:48:18Z", - "pushed_at": "2019-03-08T04:36:28Z", - "git_url": "git://github.com/0xProject/0x-monorepo.git", - "ssh_url": "git@github.com:0xProject/0x-monorepo.git", - "clone_url": "https://github.com/0xProject/0x-monorepo.git", - "svn_url": "https://github.com/0xProject/0x-monorepo", - "homepage": "", - "size": 86647, - "stargazers_count": 989, - "watchers_count": 989, - "language": "TypeScript", - "has_issues": true, - "has_projects": false, - "has_downloads": true, - "has_wiki": false, - "has_pages": false, - "forks_count": 295, - "mirror_url": null, - "archived": false, - "open_issues_count": 46, - "license": { - "key": "other", - "name": "Other", - "spdx_id": "NOASSERTION", - "url": null, - "node_id": "MDc6TGljZW5zZTA=" + "_links": { + "self": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684" + }, + "html": { + "href": "https://github.com/0xProject/0x-monorepo/pull/1684" + }, + "issue": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684" + }, + "comments": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/1991bd437f798e52d6210cf4fac173a10e30f0bd" + } }, - "forks": 295, - "open_issues": 46, - "watchers": 989, - "default_branch": "development" - } - }, - "_links": { - "self": { - "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684" - }, - "html": { - "href": "https://github.com/0xProject/0x-monorepo/pull/1684" - }, - "issue": { - "href": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684" - }, - "comments": { - "href": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1684/comments" - }, - "review_comments": { - "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/comments" - }, - "review_comment": { - "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments{/number}" - }, - "commits": { - "href": "https://api.github.com/repos/0xProject/0x-monorepo/pulls/1684/commits" - }, - "statuses": { - "href": "https://api.github.com/repos/0xProject/0x-monorepo/statuses/1991bd437f798e52d6210cf4fac173a10e30f0bd" - } - }, - "author_association": "CONTRIBUTOR" - } -] \ No newline at end of file + "author_association": "CONTRIBUTOR" + } +] diff --git a/packages/pipeline/test/fixtures/github/api_v3_pulls.ts b/packages/pipeline/test/fixtures/github/api_v3_pulls.ts index 6c0e956c53..38328e034e 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_pulls.ts +++ b/packages/pipeline/test/fixtures/github/api_v3_pulls.ts @@ -5,15 +5,15 @@ import { GithubPullRequest } from '../../../src/entities'; // docs here: https://developer.github.com/v3/pulls/#list-pull-requests const ParsedGithubPullRequest: GithubPullRequest = { - observedTimestamp: Date.now(), - repoName: '0x-monorepo', - pullRequestNumber: 1684, - state: 'open', - title: '[WIP] Pull Github data', - userLogin: 'askeluv', - createdAt: 1552019788000, - updatedAt: 1552019788000, - closedAt: null, - mergedAt: null, - }; + observedTimestamp: Date.now(), + repoName: '0x-monorepo', + pullRequestNumber: 1684, + state: 'open', + title: '[WIP] Pull Github data', + userLogin: 'askeluv', + createdAt: 1552019788000, + updatedAt: 1552019788000, + closedAt: null, + mergedAt: null, +}; export { ParsedGithubPullRequest }; diff --git a/packages/pipeline/test/fixtures/github/api_v3_repo.json b/packages/pipeline/test/fixtures/github/api_v3_repo.json index 37396d34fc..66c6ba551a 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_repo.json +++ b/packages/pipeline/test/fixtures/github/api_v3_repo.json @@ -5,24 +5,24 @@ "full_name": "0xProject/0x-monorepo", "private": false, "owner": { - "login": "0xProject", - "id": 24832717, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", - "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/0xProject", - "html_url": "https://github.com/0xProject", - "followers_url": "https://api.github.com/users/0xProject/followers", - "following_url": "https://api.github.com/users/0xProject/following{/other_user}", - "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", - "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", - "organizations_url": "https://api.github.com/users/0xProject/orgs", - "repos_url": "https://api.github.com/users/0xProject/repos", - "events_url": "https://api.github.com/users/0xProject/events{/privacy}", - "received_events_url": "https://api.github.com/users/0xProject/received_events", - "type": "Organization", - "site_admin": false + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false }, "html_url": "https://github.com/0xProject/0x-monorepo", "description": "0x protocol monorepo - includes our smart contracts and many developer tools", @@ -86,37 +86,36 @@ "archived": false, "open_issues_count": 46, "license": { - "key": "other", - "name": "Other", - "spdx_id": "NOASSERTION", - "url": null, - "node_id": "MDc6TGljZW5zZTA=" + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" }, "forks": 294, "open_issues": 46, "watchers": 989, "default_branch": "development", "organization": { - "login": "0xProject", - "id": 24832717, - "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", - "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/0xProject", - "html_url": "https://github.com/0xProject", - "followers_url": "https://api.github.com/users/0xProject/followers", - "following_url": "https://api.github.com/users/0xProject/following{/other_user}", - "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", - "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", - "organizations_url": "https://api.github.com/users/0xProject/orgs", - "repos_url": "https://api.github.com/users/0xProject/repos", - "events_url": "https://api.github.com/users/0xProject/events{/privacy}", - "received_events_url": "https://api.github.com/users/0xProject/received_events", - "type": "Organization", - "site_admin": false + "login": "0xProject", + "id": 24832717, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3", + "avatar_url": "https://avatars2.githubusercontent.com/u/24832717?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/0xProject", + "html_url": "https://github.com/0xProject", + "followers_url": "https://api.github.com/users/0xProject/followers", + "following_url": "https://api.github.com/users/0xProject/following{/other_user}", + "gists_url": "https://api.github.com/users/0xProject/gists{/gist_id}", + "starred_url": "https://api.github.com/users/0xProject/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xProject/subscriptions", + "organizations_url": "https://api.github.com/users/0xProject/orgs", + "repos_url": "https://api.github.com/users/0xProject/repos", + "events_url": "https://api.github.com/users/0xProject/events{/privacy}", + "received_events_url": "https://api.github.com/users/0xProject/received_events", + "type": "Organization", + "site_admin": false }, "network_count": 294, "subscribers_count": 89 - } - \ No newline at end of file +} diff --git a/packages/pipeline/test/fixtures/github/api_v3_repo.ts b/packages/pipeline/test/fixtures/github/api_v3_repo.ts index 3a6d9f9e4b..1ab909597e 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_repo.ts +++ b/packages/pipeline/test/fixtures/github/api_v3_repo.ts @@ -5,17 +5,17 @@ import { GithubRepo } from '../../../src/entities'; // docs here: https://developer.github.com/v3/repos/#get const ParsedGithubRepo: GithubRepo = { - observedTimestamp: Date.now(), - name: '0x-monorepo', - createdAt: 1495549053000, - updatedAt: 1551908929000, - pushedAt: 1551916745000, - size: 86538, - stargazers: 989, - watchers: 989, - forks: 294, - openIssues: 46, - network: 294, - subscribers: 89, - }; + observedTimestamp: Date.now(), + name: '0x-monorepo', + createdAt: 1495549053000, + updatedAt: 1551908929000, + pushedAt: 1551916745000, + size: 86538, + stargazers: 989, + watchers: 989, + forks: 294, + openIssues: 46, + network: 294, + subscribers: 89, +}; export { ParsedGithubRepo }; From 1148d3710232c9cf920986a1e201b8b9d96abd27 Mon Sep 17 00:00:00 2001 From: askeluv Date: Mon, 11 Mar 2019 14:10:08 +0800 Subject: [PATCH 05/95] Added comparison details to forks vs main branch --- .../1552044685566-CreateGithubFork.ts | 6 +- .../pipeline/src/data_sources/github/index.ts | 45 +- packages/pipeline/src/entities/github_fork.ts | 16 + packages/pipeline/src/parsers/github/forks.ts | 15 +- packages/pipeline/src/parsers/github/index.ts | 2 +- packages/pipeline/src/scripts/pull_github.ts | 21 +- .../test/fixtures/github/api_v3_compare.json | 3667 +++++++++++++++++ .../test/fixtures/github/api_v3_forks.json | 197 +- .../test/fixtures/github/api_v3_forks.ts | 28 +- .../test/parsers/github/github_forks_test.ts | 23 +- packages/pipeline/tsconfig.json | 3 +- 11 files changed, 3892 insertions(+), 131 deletions(-) create mode 100644 packages/pipeline/test/fixtures/github/api_v3_compare.json diff --git a/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts b/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts index b24eb74c51..652bd09003 100644 --- a/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts +++ b/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts @@ -10,7 +10,6 @@ const table = new Table({ { name: 'created_at', type: 'numeric', isNullable: false }, { name: 'updated_at', type: 'numeric', isNullable: false }, { name: 'pushed_at', type: 'numeric', isNullable: false }, - { name: 'size', type: 'numeric', isNullable: false }, { name: 'stargazers', type: 'numeric', isNullable: false }, { name: 'watchers', type: 'numeric', isNullable: false }, @@ -18,6 +17,11 @@ const table = new Table({ { name: 'open_issues', type: 'numeric', isNullable: false }, { name: 'network', type: 'numeric', isNullable: true }, { name: 'subscribers', type: 'numeric', isNullable: true }, + { name: 'default_branch', type: 'varchar', isNullable: false }, + { name: 'status', type: 'varchar', isNullable: true }, + { name: 'ahead_by', type: 'numeric', isNullable: true }, + { name: 'behind_by', type: 'numeric', isNullable: true }, + { name: 'total_commits', type: 'numeric', isNullable: true }, ], }); diff --git a/packages/pipeline/src/data_sources/github/index.ts b/packages/pipeline/src/data_sources/github/index.ts index 4189d7c082..1a10b8ebef 100644 --- a/packages/pipeline/src/data_sources/github/index.ts +++ b/packages/pipeline/src/data_sources/github/index.ts @@ -36,27 +36,38 @@ export interface GithubForkResponse extends GithubRepoResponse { owner: { login: string; }; + default_branch: string; +} + +export interface GithubComparisonResponse { + status: string; + ahead_by: number; + behind_by: number; + total_commits: number; } // tslint:disable:prefer-function-over-method // ^ Keep consistency with other sources and help logical organization export class GithubSource { - public readonly _repoUrl: string; - public readonly _pullsUrl: string; - public readonly _forksUrl: string; + public readonly _urlBase: string = 'https://api.github.com'; + public readonly _owner: string; + public readonly _repo: string; + public readonly _branch: string; + public readonly _accessToken: string; - constructor(owner: string, repo: string) { - const urlBase = 'https://api.github.com'; - this._repoUrl = `${urlBase}/repos/${owner}/${repo}`; - this._pullsUrl = `${urlBase}/repos/${owner}/${repo}/pulls?state=all&per_page=100&page=`; - this._forksUrl = `${urlBase}/repos/${owner}/${repo}/forks?per_page=100&page=`; + constructor(owner: string, repo: string, branch: string, accessToken: string) { + this._owner = owner; + this._repo = repo; + this._branch = branch; + this._accessToken = accessToken; } /** * Call Github API for repo and return result. */ public async getGithubRepoAsync(): Promise { - const resp = await fetchAsync(this._repoUrl); + const url = `${this._urlBase}/repos/${this._owner}/${this._repo}?access_token=${this._accessToken}`; + const resp = await fetchAsync(url); const respJson: GithubRepoResponse = await resp.json(); return respJson; } @@ -65,7 +76,8 @@ export class GithubSource { * Call Github API for pull requests and return result - paginated. */ public async getGithubPullsAsync(page: number): Promise { - const resp = await fetchAsync(`${this._pullsUrl}${page}`); + const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/pulls?access_token=${this._accessToken}&state=all&per_page=100&page=${page}`; + const resp = await fetchAsync(url); const respJson: GithubPullRequestResponse[] = await resp.json(); return respJson; } @@ -74,8 +86,19 @@ export class GithubSource { * Call Github API for forks of repo and return result - paginated. */ public async getGithubForksAsync(page: number): Promise { - const resp = await fetchAsync(`${this._forksUrl}${page}`); + const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/forks?access_token=${this._accessToken}&per_page=100&page=${page}`; + const resp = await fetchAsync(url); const respJson: GithubForkResponse[] = await resp.json(); return respJson; } + + /** + * Call Github API to get commit status of a fork vs repo's main branch. + */ + public async getGithubComparisonAsync(forkOwner: string, forkBranch: string): Promise { + const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/compare/${this._branch}...${forkOwner}:${forkBranch}?access_token=${this._accessToken}`; + const resp = await fetchAsync(url); + const respJson: GithubComparisonResponse = await resp.json(); + return respJson; + } } diff --git a/packages/pipeline/src/entities/github_fork.ts b/packages/pipeline/src/entities/github_fork.ts index 84befbb96c..78abf215fa 100644 --- a/packages/pipeline/src/entities/github_fork.ts +++ b/packages/pipeline/src/entities/github_fork.ts @@ -42,4 +42,20 @@ export class GithubFork { @Column({ name: 'subscribers', type: 'integer', nullable: true }) public subscribers?: number; + + @Column({ name: 'default_branch' }) + public defaultBranch!: string; + + @Column({ name: 'status', nullable: true }) + public status?: string; + + @Column({ name: 'ahead_by', type: 'integer', nullable: true }) + public aheadBy?: number; + + @Column({ name: 'behind_by', type: 'integer', nullable: true }) + public behindBy?: number; + + @Column({ name: 'total_commits', type: 'integer', nullable: true }) + public totalCommits?: number; + } diff --git a/packages/pipeline/src/parsers/github/forks.ts b/packages/pipeline/src/parsers/github/forks.ts index 842769aec8..6e848ab326 100644 --- a/packages/pipeline/src/parsers/github/forks.ts +++ b/packages/pipeline/src/parsers/github/forks.ts @@ -1,4 +1,4 @@ -import { GithubForkResponse } from '../../data_sources/github'; +import { GithubForkResponse, GithubComparisonResponse } from '../../data_sources/github'; import { GithubFork } from '../../entities'; /** @@ -21,7 +21,20 @@ export function parseGithubForks(response: GithubForkResponse[], observedTimesta parsedFork.openIssues = fork.open_issues; parsedFork.network = fork.network_count; parsedFork.subscribers = fork.subscribers_count; + parsedFork.defaultBranch = fork.default_branch; return parsedFork; }); return result; } + +/** + * Extends a GithubFork object with additional comparison fields. + */ +export function enrichGithubForkWithComparisonDetails(githubFork: GithubFork, comparisonResponse: GithubComparisonResponse): GithubFork { + const enrichedGithubFork = { ...githubFork }; // clone object + enrichedGithubFork.status = comparisonResponse.status; + enrichedGithubFork.aheadBy = comparisonResponse.ahead_by; + enrichedGithubFork.behindBy = comparisonResponse.behind_by; + enrichedGithubFork.totalCommits = comparisonResponse.total_commits; + return enrichedGithubFork; +} diff --git a/packages/pipeline/src/parsers/github/index.ts b/packages/pipeline/src/parsers/github/index.ts index a3ad562ace..31d17ff416 100644 --- a/packages/pipeline/src/parsers/github/index.ts +++ b/packages/pipeline/src/parsers/github/index.ts @@ -1,3 +1,3 @@ -export { parseGithubForks } from './forks'; +export { enrichGithubForkWithComparisonDetails, parseGithubForks } from './forks'; export { parseGithubRepo } from './repo'; export { parseGithubPulls } from './pulls'; diff --git a/packages/pipeline/src/scripts/pull_github.ts b/packages/pipeline/src/scripts/pull_github.ts index bbd5dcff14..c8d7646816 100644 --- a/packages/pipeline/src/scripts/pull_github.ts +++ b/packages/pipeline/src/scripts/pull_github.ts @@ -5,18 +5,23 @@ import { logUtils } from '@0x/utils'; import { GithubSource } from '../data_sources/github'; import { GithubFork, GithubPullRequest, GithubRepo } from '../entities'; import * as ormConfig from '../ormconfig'; -import { parseGithubForks, parseGithubPulls, parseGithubRepo } from '../parsers/github'; +import { enrichGithubForkWithComparisonDetails, parseGithubForks, parseGithubPulls, parseGithubRepo } from '../parsers/github'; import { handleError } from '../utils'; const GITHUB_OWNER = '0xProject'; const GITHUB_REPO = '0x-monorepo'; +const GITHUB_BRANCH = 'development'; const RECORDS_PER_PAGE = 100; let connection: Connection; (async () => { connection = await createConnection(ormConfig as ConnectionOptions); - const githubSource = new GithubSource(GITHUB_OWNER, GITHUB_REPO); + const accessToken = process.env.GITHUB_ACCESS_TOKEN; + if (accessToken === undefined) { + throw new Error('Missing required env var: BLOXY_API_KEY'); + } + const githubSource = new GithubSource(GITHUB_OWNER, GITHUB_REPO, GITHUB_BRANCH, accessToken); const observedTimestamp = Date.now(); // get repo and save @@ -49,10 +54,16 @@ let connection: Connection; logUtils.log(`Fetching Github forks from API, page: ${page}.`); const rawForks = await githubSource.getGithubForksAsync(page); const forks = parseGithubForks(rawForks, observedTimestamp); - numberOfRecords = forks.length; + logUtils.log('Fetching compare stats for each fork from API.'); + const enrichedForks = await Promise.all(forks.map( async fork => { + const comparison = await githubSource.getGithubComparisonAsync(fork.ownerLogin, fork.defaultBranch); + const enriched = enrichGithubForkWithComparisonDetails(fork, comparison); + return enriched; + })); + numberOfRecords = enrichedForks.length; page++; - logUtils.log(`Saving ${forks.length} forks to database.`); - await GithubForkRepository.save(forks); + logUtils.log(`Saving ${enrichedForks.length} forks to database.`); + await GithubForkRepository.save(enrichedForks); } process.exit(0); diff --git a/packages/pipeline/test/fixtures/github/api_v3_compare.json b/packages/pipeline/test/fixtures/github/api_v3_compare.json new file mode 100644 index 0000000000..4d205ebf58 --- /dev/null +++ b/packages/pipeline/test/fixtures/github/api_v3_compare.json @@ -0,0 +1,3667 @@ +{ + "url": "https://api.github.com/repos/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development", + "html_url": "https://github.com/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development", + "permalink_url": "https://github.com/0xProject/0x-monorepo/compare/0xProject:9e03e1c...NoahZinsmeister:e23547d", + "diff_url": "https://github.com/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development.diff", + "patch_url": "https://github.com/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development.patch", + "base_commit": { + "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "node_id": "MDY6Q29tbWl0OTIxODEzNzE6OWUwM2UxYzc0MmQ3M2M2ZjBiMmQ2MWIxYTA2OTEyMGU0YWE3MWQzZQ==", + "commit": { + "author": { + "name": "Amir Bandeali", + "email": "abandeali1@gmail.com", + "date": "2019-03-07T22:55:32Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2019-03-07T22:55:32Z" + }, + "message": "Merge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals", + "tree": { + "sha": "b53b7a259753f55d20852d61eb56ddfc48757352", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees/b53b7a259753f55d20852d61eb56ddfc48757352" + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJcgaFkCRBK7hj4Ov3rIwAAdHIIAK0Hn6PnU4TceyUmxQjRPJMO\nC/nVXyxaplXfyU4U8ZcMfAqWm94AaywNIeCPHaA2PE2+GEjwOvd3nMWPFEL53K3r\nnaZrDKTj2lncaz4t382ihiBPSklWskF2Hl8eUQVc9Bp2w1OlnBBUDzr67m+tmtrz\npfysqWVT+VCw5/4LPpF2/ExpynuDKnWwAGtP1lZuWRN82EYo/9/ni/cUG17TuPaF\nlU8imoTtxUxgptTp8Uz2bA8ys6DpoVFwPzQ+Wf8QFuvf5Xlgy1Sf6QkNHimMdZDa\nsZ2N/Es/oMMw7xxJehNqcRQ3mzmDmd14h78h0o7M9v/lrVwFAEvKdFebCNFGDd0=\n=scus\n-----END PGP SIGNATURE-----\n", + "payload": "tree b53b7a259753f55d20852d61eb56ddfc48757352\nparent 6fbfcef1faa2246909bc09e051190d68aaaa101b\nparent 9471510086d0f3d9ffee3db095cfa3e179a43b31\nauthor Amir Bandeali 1551999332 -0800\ncommitter GitHub 1551999332 -0800\n\nMerge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals" + } + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e/comments", + "author": { + "login": "abandeali1", + "id": 18060168, + "node_id": "MDQ6VXNlcjE4MDYwMTY4", + "avatar_url": "https://avatars0.githubusercontent.com/u/18060168?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/abandeali1", + "html_url": "https://github.com/abandeali1", + "followers_url": "https://api.github.com/users/abandeali1/followers", + "following_url": "https://api.github.com/users/abandeali1/following{/other_user}", + "gists_url": "https://api.github.com/users/abandeali1/gists{/gist_id}", + "starred_url": "https://api.github.com/users/abandeali1/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/abandeali1/subscriptions", + "organizations_url": "https://api.github.com/users/abandeali1/orgs", + "repos_url": "https://api.github.com/users/abandeali1/repos", + "events_url": "https://api.github.com/users/abandeali1/events{/privacy}", + "received_events_url": "https://api.github.com/users/abandeali1/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "6fbfcef1faa2246909bc09e051190d68aaaa101b", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/6fbfcef1faa2246909bc09e051190d68aaaa101b", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/6fbfcef1faa2246909bc09e051190d68aaaa101b" + }, + { + "sha": "9471510086d0f3d9ffee3db095cfa3e179a43b31", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9471510086d0f3d9ffee3db095cfa3e179a43b31", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/9471510086d0f3d9ffee3db095cfa3e179a43b31" + } + ] + }, + "merge_base_commit": { + "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "node_id": "MDY6Q29tbWl0MTc0NzY0NTYyOjllMDNlMWM3NDJkNzNjNmYwYjJkNjFiMWEwNjkxMjBlNGFhNzFkM2U=", + "commit": { + "author": { + "name": "Amir Bandeali", + "email": "abandeali1@gmail.com", + "date": "2019-03-07T22:55:32Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2019-03-07T22:55:32Z" + }, + "message": "Merge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals", + "tree": { + "sha": "b53b7a259753f55d20852d61eb56ddfc48757352", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees/b53b7a259753f55d20852d61eb56ddfc48757352" + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJcgaFkCRBK7hj4Ov3rIwAAdHIIAK0Hn6PnU4TceyUmxQjRPJMO\nC/nVXyxaplXfyU4U8ZcMfAqWm94AaywNIeCPHaA2PE2+GEjwOvd3nMWPFEL53K3r\nnaZrDKTj2lncaz4t382ihiBPSklWskF2Hl8eUQVc9Bp2w1OlnBBUDzr67m+tmtrz\npfysqWVT+VCw5/4LPpF2/ExpynuDKnWwAGtP1lZuWRN82EYo/9/ni/cUG17TuPaF\nlU8imoTtxUxgptTp8Uz2bA8ys6DpoVFwPzQ+Wf8QFuvf5Xlgy1Sf6QkNHimMdZDa\nsZ2N/Es/oMMw7xxJehNqcRQ3mzmDmd14h78h0o7M9v/lrVwFAEvKdFebCNFGDd0=\n=scus\n-----END PGP SIGNATURE-----\n", + "payload": "tree b53b7a259753f55d20852d61eb56ddfc48757352\nparent 6fbfcef1faa2246909bc09e051190d68aaaa101b\nparent 9471510086d0f3d9ffee3db095cfa3e179a43b31\nauthor Amir Bandeali 1551999332 -0800\ncommitter GitHub 1551999332 -0800\n\nMerge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals" + } + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e/comments", + "author": { + "login": "abandeali1", + "id": 18060168, + "node_id": "MDQ6VXNlcjE4MDYwMTY4", + "avatar_url": "https://avatars0.githubusercontent.com/u/18060168?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/abandeali1", + "html_url": "https://github.com/abandeali1", + "followers_url": "https://api.github.com/users/abandeali1/followers", + "following_url": "https://api.github.com/users/abandeali1/following{/other_user}", + "gists_url": "https://api.github.com/users/abandeali1/gists{/gist_id}", + "starred_url": "https://api.github.com/users/abandeali1/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/abandeali1/subscriptions", + "organizations_url": "https://api.github.com/users/abandeali1/orgs", + "repos_url": "https://api.github.com/users/abandeali1/repos", + "events_url": "https://api.github.com/users/abandeali1/events{/privacy}", + "received_events_url": "https://api.github.com/users/abandeali1/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "6fbfcef1faa2246909bc09e051190d68aaaa101b", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/6fbfcef1faa2246909bc09e051190d68aaaa101b", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/6fbfcef1faa2246909bc09e051190d68aaaa101b" + }, + { + "sha": "9471510086d0f3d9ffee3db095cfa3e179a43b31", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9471510086d0f3d9ffee3db095cfa3e179a43b31", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/9471510086d0f3d9ffee3db095cfa3e179a43b31" + } + ] + }, + "status": "ahead", + "ahead_by": 1, + "behind_by": 0, + "total_commits": 1, + "commits": [ + { + "sha": "e23547d5dac2626e326dec0d1d27aa11b290d020", + "node_id": "MDY6Q29tbWl0OTIxODEzNzE6ZTIzNTQ3ZDVkYWMyNjI2ZTMyNmRlYzBkMWQyN2FhMTFiMjkwZDAyMA==", + "commit": { + "author": { + "name": "Noah Zinsmeister", + "email": "noahwz@gmail.com", + "date": "2019-03-10T04:11:30Z" + }, + "committer": { + "name": "Noah Zinsmeister", + "email": "noahwz@gmail.com", + "date": "2019-03-10T04:11:30Z" + }, + "message": "enable transfer logic", + "tree": { + "sha": "bb901231fc8dcd7f3c470ec23e8e564ffacd3a2b", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees/bb901231fc8dcd7f3c470ec23e8e564ffacd3a2b" + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits/e23547d5dac2626e326dec0d1d27aa11b290d020", + "comment_count": 0, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/e23547d5dac2626e326dec0d1d27aa11b290d020", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/e23547d5dac2626e326dec0d1d27aa11b290d020", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/e23547d5dac2626e326dec0d1d27aa11b290d020/comments", + "author": { + "login": "NoahZinsmeister", + "id": 3760414, + "node_id": "MDQ6VXNlcjM3NjA0MTQ=", + "avatar_url": "https://avatars3.githubusercontent.com/u/3760414?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/NoahZinsmeister", + "html_url": "https://github.com/NoahZinsmeister", + "followers_url": "https://api.github.com/users/NoahZinsmeister/followers", + "following_url": "https://api.github.com/users/NoahZinsmeister/following{/other_user}", + "gists_url": "https://api.github.com/users/NoahZinsmeister/gists{/gist_id}", + "starred_url": "https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/NoahZinsmeister/subscriptions", + "organizations_url": "https://api.github.com/users/NoahZinsmeister/orgs", + "repos_url": "https://api.github.com/users/NoahZinsmeister/repos", + "events_url": "https://api.github.com/users/NoahZinsmeister/events{/privacy}", + "received_events_url": "https://api.github.com/users/NoahZinsmeister/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "NoahZinsmeister", + "id": 3760414, + "node_id": "MDQ6VXNlcjM3NjA0MTQ=", + "avatar_url": "https://avatars3.githubusercontent.com/u/3760414?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/NoahZinsmeister", + "html_url": "https://github.com/NoahZinsmeister", + "followers_url": "https://api.github.com/users/NoahZinsmeister/followers", + "following_url": "https://api.github.com/users/NoahZinsmeister/following{/other_user}", + "gists_url": "https://api.github.com/users/NoahZinsmeister/gists{/gist_id}", + "starred_url": "https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/NoahZinsmeister/subscriptions", + "organizations_url": "https://api.github.com/users/NoahZinsmeister/orgs", + "repos_url": "https://api.github.com/users/NoahZinsmeister/repos", + "events_url": "https://api.github.com/users/NoahZinsmeister/events{/privacy}", + "received_events_url": "https://api.github.com/users/NoahZinsmeister/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e" + } + ] + } + ], + "files": [ + { + "sha": "da3bed7a3db35c50bcd43ecaa5837e7f3d5043f9", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts", + "status": "added", + "additions": 180, + "deletions": 0, + "changes": 180, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,180 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type AssetProxyOwnerEventArgs = AssetProxyOwnerAssetProxyRegistrationEventArgs | AssetProxyOwnerConfirmationTimeSetEventArgs | AssetProxyOwnerTimeLockChangeEventArgs | AssetProxyOwnerConfirmationEventArgs | AssetProxyOwnerRevocationEventArgs | AssetProxyOwnerSubmissionEventArgs | AssetProxyOwnerExecutionEventArgs | AssetProxyOwnerExecutionFailureEventArgs | AssetProxyOwnerDepositEventArgs | AssetProxyOwnerOwnerAdditionEventArgs | AssetProxyOwnerOwnerRemovalEventArgs | AssetProxyOwnerRequirementChangeEventArgs;\n+export declare enum AssetProxyOwnerEvents {\n+ AssetProxyRegistration = \"AssetProxyRegistration\",\n+ ConfirmationTimeSet = \"ConfirmationTimeSet\",\n+ TimeLockChange = \"TimeLockChange\",\n+ Confirmation = \"Confirmation\",\n+ Revocation = \"Revocation\",\n+ Submission = \"Submission\",\n+ Execution = \"Execution\",\n+ ExecutionFailure = \"ExecutionFailure\",\n+ Deposit = \"Deposit\",\n+ OwnerAddition = \"OwnerAddition\",\n+ OwnerRemoval = \"OwnerRemoval\",\n+ RequirementChange = \"RequirementChange\"\n+}\n+export interface AssetProxyOwnerAssetProxyRegistrationEventArgs extends DecodedLogArgs {\n+ assetProxyContract: string;\n+ isRegistered: boolean;\n+}\n+export interface AssetProxyOwnerConfirmationTimeSetEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+ confirmationTime: BigNumber;\n+}\n+export interface AssetProxyOwnerTimeLockChangeEventArgs extends DecodedLogArgs {\n+ secondsTimeLocked: BigNumber;\n+}\n+export interface AssetProxyOwnerConfirmationEventArgs extends DecodedLogArgs {\n+ sender: string;\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerRevocationEventArgs extends DecodedLogArgs {\n+ sender: string;\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerSubmissionEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerExecutionEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerExecutionFailureEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerDepositEventArgs extends DecodedLogArgs {\n+ sender: string;\n+ value: BigNumber;\n+}\n+export interface AssetProxyOwnerOwnerAdditionEventArgs extends DecodedLogArgs {\n+ owner: string;\n+}\n+export interface AssetProxyOwnerOwnerRemovalEventArgs extends DecodedLogArgs {\n+ owner: string;\n+}\n+export interface AssetProxyOwnerRequirementChangeEventArgs extends DecodedLogArgs {\n+ required: BigNumber;\n+}\n+export declare class AssetProxyOwnerContract extends BaseContract {\n+ owners: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeOwner: {\n+ sendTransactionAsync(owner: string, txData?: Partial): Promise;\n+ estimateGasAsync(owner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(owner: string): string;\n+ callAsync(owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ revokeConfirmation: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isOwner: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ confirmations: {\n+ callAsync(index_0: BigNumber, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ executeRemoveAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ secondsTimeLocked: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getTransactionCount: {\n+ callAsync(pending: boolean, executed: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ registerAssetProxy: {\n+ sendTransactionAsync(assetProxyContract: string, isRegistered: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(assetProxyContract: string, isRegistered: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetProxyContract: string, isRegistered: boolean): string;\n+ callAsync(assetProxyContract: string, isRegistered: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ addOwner: {\n+ sendTransactionAsync(owner: string, txData?: Partial): Promise;\n+ estimateGasAsync(owner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(owner: string): string;\n+ callAsync(owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isConfirmed: {\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ changeTimeLock: {\n+ sendTransactionAsync(_secondsTimeLocked: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_secondsTimeLocked: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_secondsTimeLocked: BigNumber): string;\n+ callAsync(_secondsTimeLocked: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isAssetProxyRegistered: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getConfirmationCount: {\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transactions: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[string, BigNumber, string, boolean]>;\n+ };\n+ getOwners: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getTransactionIds: {\n+ callAsync(from: BigNumber, to: BigNumber, pending: boolean, executed: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getConfirmations: {\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transactionCount: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ changeRequirement: {\n+ sendTransactionAsync(_required: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_required: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_required: BigNumber): string;\n+ callAsync(_required: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ confirmTransaction: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ submitTransaction: {\n+ sendTransactionAsync(destination: string, value: BigNumber, data: string, txData?: Partial): Promise;\n+ estimateGasAsync(destination: string, value: BigNumber, data: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(destination: string, value: BigNumber, data: string): string;\n+ callAsync(destination: string, value: BigNumber, data: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ confirmationTimes: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ MAX_OWNER_COUNT: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ required: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ replaceOwner: {\n+ sendTransactionAsync(owner: string, newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(owner: string, newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(owner: string, newOwner: string): string;\n+ callAsync(owner: string, newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ executeTransaction: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _owners: string[], _assetProxyContracts: string[], _required: BigNumber, _secondsTimeLocked: BigNumber): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _owners: string[], _assetProxyContracts: string[], _required: BigNumber, _secondsTimeLocked: BigNumber): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=asset_proxy_owner.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "58428c5a5ee8bbedb2ceb65448e9ab54fb5ed5c0", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_proxy_owner.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/asset_proxy_owner.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "deaf4bbd1ca935029de610ba2a45e9a9634c54f3", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js", + "status": "added", + "additions": 1445, + "deletions": 0, + "changes": 1445, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,1445 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var AssetProxyOwnerEvents;\n+(function (AssetProxyOwnerEvents) {\n+ AssetProxyOwnerEvents[\"AssetProxyRegistration\"] = \"AssetProxyRegistration\";\n+ AssetProxyOwnerEvents[\"ConfirmationTimeSet\"] = \"ConfirmationTimeSet\";\n+ AssetProxyOwnerEvents[\"TimeLockChange\"] = \"TimeLockChange\";\n+ AssetProxyOwnerEvents[\"Confirmation\"] = \"Confirmation\";\n+ AssetProxyOwnerEvents[\"Revocation\"] = \"Revocation\";\n+ AssetProxyOwnerEvents[\"Submission\"] = \"Submission\";\n+ AssetProxyOwnerEvents[\"Execution\"] = \"Execution\";\n+ AssetProxyOwnerEvents[\"ExecutionFailure\"] = \"ExecutionFailure\";\n+ AssetProxyOwnerEvents[\"Deposit\"] = \"Deposit\";\n+ AssetProxyOwnerEvents[\"OwnerAddition\"] = \"OwnerAddition\";\n+ AssetProxyOwnerEvents[\"OwnerRemoval\"] = \"OwnerRemoval\";\n+ AssetProxyOwnerEvents[\"RequirementChange\"] = \"RequirementChange\";\n+})(AssetProxyOwnerEvents = exports.AssetProxyOwnerEvents || (exports.AssetProxyOwnerEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var AssetProxyOwnerContract = /** @class */ (function (_super) {\n+ __extends(AssetProxyOwnerContract, _super);\n+ function AssetProxyOwnerContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'AssetProxyOwner', abi, address, supportedProvider, txDefaults) || this;\n+ _this.owners = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owners(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owners(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeOwner = {\n+ sendTransactionAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeOwner.estimateGasAsync.bind(self, owner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (owner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeOwner(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.revokeConfirmation = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.revokeConfirmation.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('revokeConfirmation(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isOwner = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isOwner(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isOwner(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.confirmations = {\n+ callAsync: function (index_0, index_1, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmations(uint256,address)', [index_0,\n+ index_1\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('confirmations(uint256,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.executeRemoveAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.executeRemoveAuthorizedAddressAtIndex.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('executeRemoveAuthorizedAddressAtIndex(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.secondsTimeLocked = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('secondsTimeLocked()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('secondsTimeLocked()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTransactionCount = {\n+ callAsync: function (pending, executed, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTransactionCount(bool,bool)', [pending,\n+ executed\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTransactionCount(bool,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.registerAssetProxy = {\n+ sendTransactionAsync: function (assetProxyContract, isRegistered, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.registerAssetProxy.estimateGasAsync.bind(self, assetProxyContract, isRegistered))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (assetProxyContract, isRegistered, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (assetProxyContract, isRegistered) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (assetProxyContract, isRegistered, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('registerAssetProxy(address,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.addOwner = {\n+ sendTransactionAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addOwner.estimateGasAsync.bind(self, owner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (owner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addOwner(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isConfirmed = {\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isConfirmed(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isConfirmed(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.changeTimeLock = {\n+ sendTransactionAsync: function (_secondsTimeLocked, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.changeTimeLock.estimateGasAsync.bind(self, _secondsTimeLocked))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_secondsTimeLocked, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_secondsTimeLocked) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_secondsTimeLocked, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('changeTimeLock(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isAssetProxyRegistered = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isAssetProxyRegistered(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isAssetProxyRegistered(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getConfirmationCount = {\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getConfirmationCount(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getConfirmationCount(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transactions = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transactions(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transactions(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getOwners = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getOwners()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getOwners()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTransactionIds = {\n+ callAsync: function (from, to, pending, executed, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTransactionIds(uint256,uint256,bool,bool)', [from,\n+ to,\n+ pending,\n+ executed\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTransactionIds(uint256,uint256,bool,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getConfirmations = {\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getConfirmations(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getConfirmations(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transactionCount = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transactionCount()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transactionCount()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.changeRequirement = {\n+ sendTransactionAsync: function (_required, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.changeRequirement.estimateGasAsync.bind(self, _required))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_required, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_required) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_required, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('changeRequirement(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.confirmTransaction = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.confirmTransaction.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('confirmTransaction(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.submitTransaction = {\n+ sendTransactionAsync: function (destination, value, data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.submitTransaction.estimateGasAsync.bind(self, destination, value, data))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (destination, value, data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (destination, value, data) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (destination, value, data, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('submitTransaction(address,uint256,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.confirmationTimes = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmationTimes(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('confirmationTimes(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.MAX_OWNER_COUNT = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('MAX_OWNER_COUNT()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('MAX_OWNER_COUNT()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.required = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('required()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('required()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.replaceOwner = {\n+ sendTransactionAsync: function (owner, newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.replaceOwner.estimateGasAsync.bind(self, owner, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (owner, newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (owner, newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (owner, newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('replaceOwner(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.executeTransaction = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.executeTransaction.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('executeTransaction(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ AssetProxyOwnerContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _owners, _assetProxyContracts, _required, _secondsTimeLocked) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, AssetProxyOwnerContract.deployAsync(bytecode, abi, provider, txDefaults, _owners, _assetProxyContracts, _required, _secondsTimeLocked)];\n+ });\n+ });\n+ };\n+ AssetProxyOwnerContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _owners, _assetProxyContracts, _required, _secondsTimeLocked) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_owners,\n+ _assetProxyContracts,\n+ _required,\n+ _secondsTimeLocked\n+ ], base_contract_1.BaseContract._bigNumberToString), 4), _owners = _a[0], _assetProxyContracts = _a[1], _required = _a[2], _secondsTimeLocked = _a[3];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_owners,\n+ _assetProxyContracts,\n+ _required,\n+ _secondsTimeLocked\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"AssetProxyOwner successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new AssetProxyOwnerContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_owners,\n+ _assetProxyContracts,\n+ _required,\n+ _secondsTimeLocked\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return AssetProxyOwnerContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.AssetProxyOwnerContract = AssetProxyOwnerContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=asset_proxy_owner.js.map\n\\ No newline at end of file" + }, + { + "sha": "9d796719175f5703e76872406a30568b5c5f1229", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_proxy_owner.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/asset_proxy_owner.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "ff28484cf0d4f3a402e9308ad812cbc5e620b1ae", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts", + "status": "added", + "additions": 85, + "deletions": 0, + "changes": 85, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,85 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type DummyERC20TokenEventArgs = DummyERC20TokenTransferEventArgs | DummyERC20TokenApprovalEventArgs;\n+export declare enum DummyERC20TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\"\n+}\n+export interface DummyERC20TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface DummyERC20TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export declare class DummyERC20TokenContract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_spender: string, _value: BigNumber): string;\n+ callAsync(_spender: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string;\n+ callAsync(_from: string, _to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ decimals: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ mint: {\n+ sendTransactionAsync(_value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_value: BigNumber): string;\n+ callAsync(_value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _value: BigNumber): string;\n+ callAsync(_to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(_owner: string, _spender: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ setBalance: {\n+ sendTransactionAsync(_target: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_target: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_target: string, _value: BigNumber): string;\n+ callAsync(_target: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ MAX_MINT_AMOUNT: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string, _decimals: BigNumber, _totalSupply: BigNumber): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string, _decimals: BigNumber, _totalSupply: BigNumber): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=dummy_erc20_token.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "e11e773f837176ec3d1158a2399eb08cb1716ced", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc20_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc20_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,wBAAwB,GAC9B,gCAAgC,GAChC,gCAAgC,CAAC;AAEvC,oBAAY,qBAAqB;IAC7B,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACxB;AAED,MAAM,WAAW,gCAAiC,SAAQ,cAAc;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,gCAAiC,SAAQ,cAAc;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,uBAAwB,SAAQ,YAAY;IAC9C,IAAI;;MAyBT;IACK,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,QAAQ;;MAyBb;IACK,SAAS;;MA2Bd;IACK,KAAK;;MAyBV;IACK,MAAM;;MAyBX;IACK,IAAI;;;;;MA2ET;IACK,QAAQ;;;;;MAoFb;IACK,SAAS;;MA6Bd;IACK,UAAU;;;;;MAoFf;IACK,iBAAiB;;;;;MA2EtB;IACK,eAAe;;MAyBpB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,SAAS,GAC5B,OAAO,CAAC,uBAAuB,CAAC;WAaf,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,SAAS,GAC5B,OAAO,CAAC,uBAAuB,CAAC;gBAyCvB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "bb4e3857e51bf86a3cd74390cd1314168fbd05e1", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js", + "status": "added", + "additions": 843, + "deletions": 0, + "changes": 843, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,843 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var DummyERC20TokenEvents;\n+(function (DummyERC20TokenEvents) {\n+ DummyERC20TokenEvents[\"Transfer\"] = \"Transfer\";\n+ DummyERC20TokenEvents[\"Approval\"] = \"Approval\";\n+})(DummyERC20TokenEvents = exports.DummyERC20TokenEvents || (exports.DummyERC20TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var DummyERC20TokenContract = /** @class */ (function (_super) {\n+ __extends(DummyERC20TokenContract, _super);\n+ function DummyERC20TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'DummyERC20Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _spender, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_spender, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_spender, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.decimals = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('decimals()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('decimals()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.mint = {\n+ sendTransactionAsync: function (_value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.mint.estimateGasAsync.bind(self, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('mint(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (_owner, _spender, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner,\n+ _spender\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.setBalance = {\n+ sendTransactionAsync: function (_target, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.setBalance.estimateGasAsync.bind(self, _target, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_target, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_target, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_target, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('setBalance(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.MAX_MINT_AMOUNT = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('MAX_MINT_AMOUNT()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('MAX_MINT_AMOUNT()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ DummyERC20TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _name, _symbol, _decimals, _totalSupply) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, DummyERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults, _name, _symbol, _decimals, _totalSupply)];\n+ });\n+ });\n+ };\n+ DummyERC20TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _name, _symbol, _decimals, _totalSupply) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_name,\n+ _symbol,\n+ _decimals,\n+ _totalSupply\n+ ], base_contract_1.BaseContract._bigNumberToString), 4), _name = _a[0], _symbol = _a[1], _decimals = _a[2], _totalSupply = _a[3];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_name,\n+ _symbol,\n+ _decimals,\n+ _totalSupply\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"DummyERC20Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new DummyERC20TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_name,\n+ _symbol,\n+ _decimals,\n+ _totalSupply\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return DummyERC20TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.DummyERC20TokenContract = DummyERC20TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=dummy_erc20_token.js.map\n\\ No newline at end of file" + }, + { + "sha": "ccf84738e65bb9b7520b2b69a0f04206808c3106", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc20_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc20_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "0c9f3baa8ef65ff4159f9916c463246009793a10", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts", + "status": "added", + "additions": 100, + "deletions": 0, + "changes": 100, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,100 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type DummyERC721TokenEventArgs = DummyERC721TokenTransferEventArgs | DummyERC721TokenApprovalEventArgs | DummyERC721TokenApprovalForAllEventArgs;\n+export declare enum DummyERC721TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\",\n+ ApprovalForAll = \"ApprovalForAll\"\n+}\n+export interface DummyERC721TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _tokenId: BigNumber;\n+}\n+export interface DummyERC721TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _approved: string;\n+ _tokenId: BigNumber;\n+}\n+export interface DummyERC721TokenApprovalForAllEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _operator: string;\n+ _approved: boolean;\n+}\n+export declare class DummyERC721TokenContract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getApproved: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_approved: string, _tokenId: BigNumber): string;\n+ callAsync(_approved: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ mint: {\n+ sendTransactionAsync(_to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _tokenId: BigNumber): string;\n+ callAsync(_to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom1: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ ownerOf: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ burn: {\n+ sendTransactionAsync(_owner: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_owner: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_owner: string, _tokenId: BigNumber): string;\n+ callAsync(_owner: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ setApprovalForAll: {\n+ sendTransactionAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_operator: string, _approved: boolean): string;\n+ callAsync(_operator: string, _approved: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom2: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber, _data: string): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isApprovedForAll: {\n+ callAsync(_owner: string, _operator: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=dummy_erc721_token.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "134e1107e302a6392449a8233eb09f9f704c4e6d", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc721_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc721_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,yBAAyB,GAC/B,iCAAiC,GACjC,iCAAiC,GACjC,uCAAuC,CAAC;AAE9C,oBAAY,sBAAsB;IAC9B,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;CACpC;AAED,MAAM,WAAW,iCAAkC,SAAQ,cAAc;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,iCAAkC,SAAQ,cAAc;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,uCAAwC,SAAQ,cAAc;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACtB;AAMD,qBAAa,wBAAyB,SAAQ,YAAY;IAC/C,IAAI;;MAyBT;IACK,WAAW;;MA2BhB;IACK,OAAO;;;;;MAoFZ;IACK,YAAY;;;;;MA6FjB;IACK,IAAI;;;;;MAoFT;IACK,iBAAiB;;;;;MA6FtB;IACK,OAAO;;MA2BZ;IACK,SAAS;;MA2Bd;IACK,KAAK;;MAyBV;IACK,MAAM;;MAyBX;IACK,IAAI;;;;;MAoFT;IACK,iBAAiB;;;;;MAoFtB;IACK,iBAAiB;;;;;MAsGtB;IACK,gBAAgB;;MA6BrB;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,CAAC;WAWhB,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,CAAC;gBAiCxB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "4c040e84e8c03672958c5d22f9e3fd22366c44c2", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js", + "status": "added", + "additions": 988, + "deletions": 0, + "changes": 988, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,988 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var DummyERC721TokenEvents;\n+(function (DummyERC721TokenEvents) {\n+ DummyERC721TokenEvents[\"Transfer\"] = \"Transfer\";\n+ DummyERC721TokenEvents[\"Approval\"] = \"Approval\";\n+ DummyERC721TokenEvents[\"ApprovalForAll\"] = \"ApprovalForAll\";\n+})(DummyERC721TokenEvents = exports.DummyERC721TokenEvents || (exports.DummyERC721TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var DummyERC721TokenContract = /** @class */ (function (_super) {\n+ __extends(DummyERC721TokenContract, _super);\n+ function DummyERC721TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'DummyERC721Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getApproved = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getApproved(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _approved, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_approved, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_approved, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.mint = {\n+ sendTransactionAsync: function (_to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.mint.estimateGasAsync.bind(self, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('mint(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom1 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom1.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.ownerOf = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.burn = {\n+ sendTransactionAsync: function (_owner, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.burn.estimateGasAsync.bind(self, _owner, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_owner, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_owner, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_owner, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('burn(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.setApprovalForAll = {\n+ sendTransactionAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.setApprovalForAll.estimateGasAsync.bind(self, _operator, _approved))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_operator, _approved) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_operator, _approved, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom2 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom2.estimateGasAsync.bind(self, _from, _to, _tokenId, _data))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId, _data) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, _data, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isApprovedForAll = {\n+ callAsync: function (_owner, _operator, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [_owner,\n+ _operator\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ DummyERC721TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _name, _symbol) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, DummyERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults, _name, _symbol)];\n+ });\n+ });\n+ };\n+ DummyERC721TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _name, _symbol) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_name,\n+ _symbol\n+ ], base_contract_1.BaseContract._bigNumberToString), 2), _name = _a[0], _symbol = _a[1];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_name,\n+ _symbol\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"DummyERC721Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new DummyERC721TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_name,\n+ _symbol\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return DummyERC721TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.DummyERC721TokenContract = DummyERC721TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=dummy_erc721_token.js.map\n\\ No newline at end of file" + }, + { + "sha": "d0b0eff0a07d9fe790551b5b733adb8524df3906", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc721_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc721_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "61ea2e7ffee45d3c8fd5182ba65e30234495d3c0", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts", + "status": "added", + "additions": 199, + "deletions": 0, + "changes": 199, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,199 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class DutchAuctionContract extends BaseContract {\n+ getAuctionDetails: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ beginTimeSeconds: BigNumber;\n+ endTimeSeconds: BigNumber;\n+ beginAmount: BigNumber;\n+ endAmount: BigNumber;\n+ currentAmount: BigNumber;\n+ currentTimeSeconds: BigNumber;\n+ }>;\n+ };\n+ matchOrders: {\n+ sendTransactionAsync(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string, txData?: Partial): Promise;\n+ estimateGasAsync(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string): string;\n+ callAsync(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ left: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ right: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ leftMakerAssetSpreadAmount: BigNumber;\n+ }>;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=dutch_auction.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "37a0e33f77265946c71b8f12f81ee2dd215aebec", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dutch_auction.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dutch_auction.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,oBAAqB,SAAQ,YAAY;IAC3C,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2EtB;IACK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsGhB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,GACtB,OAAO,CAAC,oBAAoB,CAAC;WAUZ,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,GACtB,OAAO,CAAC,oBAAoB,CAAC;gBA6BpB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "5809f6df7c6a0a08abd992828ebbc36af909eef0", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js", + "status": "added", + "additions": 311, + "deletions": 0, + "changes": 311, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,311 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var DutchAuctionContract = /** @class */ (function (_super) {\n+ __extends(DutchAuctionContract, _super);\n+ function DutchAuctionContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'DutchAuction', abi, address, supportedProvider, txDefaults) || this;\n+ _this.getAuctionDetails = {\n+ sendTransactionAsync: function (order, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.getAuctionDetails.estimateGasAsync.bind(self, order))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (order, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (order) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (order, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.matchOrders = {\n+ sendTransactionAsync: function (buyOrder, sellOrder, buySignature, sellSignature, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.matchOrders.estimateGasAsync.bind(self, buyOrder, sellOrder, buySignature, sellSignature))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (buyOrder, sellOrder, buySignature, sellSignature, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (buyOrder, sellOrder, buySignature, sellSignature) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (buyOrder, sellOrder, buySignature, sellSignature, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ DutchAuctionContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _exchange) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, DutchAuctionContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange)];\n+ });\n+ });\n+ };\n+ DutchAuctionContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _exchange) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_exchange\n+ ], base_contract_1.BaseContract._bigNumberToString), 1), _exchange = _a[0];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_exchange\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"DutchAuction successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new DutchAuctionContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_exchange\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return DutchAuctionContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.DutchAuctionContract = DutchAuctionContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=dutch_auction.js.map\n\\ No newline at end of file" + }, + { + "sha": "ad74e3eb29d8ee956e1613b2dffed365db74ab02", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dutch_auction.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dutch_auction.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "532e412d689eaed0b27ca9284d5981714ef7307e", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts", + "status": "added", + "additions": 62, + "deletions": 0, + "changes": 62, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,62 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC20ProxyEventArgs = ERC20ProxyAuthorizedAddressAddedEventArgs | ERC20ProxyAuthorizedAddressRemovedEventArgs;\n+export declare enum ERC20ProxyEvents {\n+ AuthorizedAddressAdded = \"AuthorizedAddressAdded\",\n+ AuthorizedAddressRemoved = \"AuthorizedAddressRemoved\"\n+}\n+export interface ERC20ProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface ERC20ProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export declare class ERC20ProxyContract extends BaseContract {\n+ addAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorities: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string, index: BigNumber): string;\n+ callAsync(target: string, index: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getProxyId: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorized: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAuthorizedAddresses: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc20_proxy.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "c6584a6bb33565bcdcfbf3052f3fd56d7d74d9ae", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_proxy.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_proxy.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,mBAAmB,GACzB,yCAAyC,GACzC,2CAA2C,CAAC;AAElD,oBAAY,gBAAgB;IACxB,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;CACxD;AAED,MAAM,WAAW,yCAA0C,SAAQ,cAAc;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2CAA4C,SAAQ,cAAc;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,kBAAmB,SAAQ,YAAY;IACzC,oBAAoB;;;;;MA2EzB;IACK,WAAW;;MA2BhB;IACK,uBAAuB;;;;;MA2E5B;IACK,KAAK;;MAyBV;IACK,8BAA8B;;;;;MAoFnC;IACK,UAAU;;MAyBf;IACK,UAAU;;MA2Bf;IACK,sBAAsB;;MAyB3B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;WASV,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;gBAyBlB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "b83d3f661742d6c1a4a9c656cfdd4a4a6c0fc2c0", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js", + "status": "added", + "additions": 570, + "deletions": 0, + "changes": 570, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,570 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC20ProxyEvents;\n+(function (ERC20ProxyEvents) {\n+ ERC20ProxyEvents[\"AuthorizedAddressAdded\"] = \"AuthorizedAddressAdded\";\n+ ERC20ProxyEvents[\"AuthorizedAddressRemoved\"] = \"AuthorizedAddressRemoved\";\n+})(ERC20ProxyEvents = exports.ERC20ProxyEvents || (exports.ERC20ProxyEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC20ProxyContract = /** @class */ (function (_super) {\n+ __extends(ERC20ProxyContract, _super);\n+ function ERC20ProxyContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC20Proxy', abi, address, supportedProvider, txDefaults) || this;\n+ _this.addAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorities = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorities(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target, index))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target, index) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, index, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getProxyId = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getProxyId()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getProxyId()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorized = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorized(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorized(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAuthorizedAddresses = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC20ProxyContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC20ProxyContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC20ProxyContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC20Proxy successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC20ProxyContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC20ProxyContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC20ProxyContract = ERC20ProxyContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc20_proxy.js.map\n\\ No newline at end of file" + }, + { + "sha": "54b25eab5fb2ae38ca6e2dd316bad221b977b82f", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_proxy.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_proxy.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uGAAuG;AACvG,oCAAoC;AACpC,mCAAmC;AACnC,mDAAiD;AAEjD,mCAA2E;AAE3E,iDAA+C;AAC/C,+BAAiC;AACjC,0BAA4B;AAO5B,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,qEAAiD,CAAA;IACjD,yEAAqD,CAAA;AACzD,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B;AAaD,0BAA0B;AAC1B,2CAA2C;AAC3C,sCAAsC;AACtC;IAAwC,sCAAY;IA2ehD,4BAAY,GAAgB,EAAE,OAAe,EAAE,iBAAoC,EAAE,UAA4B;QAAjH,YACI,kBAAM,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAEnE;QA7eM,0BAAoB,GAAG;YACpB,oBAAoB,EAA1B,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iCAC/F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAC3C,IAAI,EACJ,MAAM,CACT,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iCAC/F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAAc;gBAEd,IAAM,IAAI,GAAG,IAAiC,CAAC;gBAC/C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iBAC7G,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iCAC3F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,CAAC;gCAErE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,iBAAW,GAAG;YACX,SAAS,EAAf,UACI,OAAkB,EAClB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC,OAAO;iCACnF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;gCAE5D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,6BAAuB,GAAG;YACvB,oBAAoB,EAA1B,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iCAClG,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAC9C,IAAI,EACJ,MAAM,CACT,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iCAClG,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAAc;gBAEd,IAAM,IAAI,GAAG,IAAiC,CAAC;gBAC/C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iBAChH,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iCAC9F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;gCAExE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,WAAK,GAAG;YACL,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gCAClC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gCAE/C,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,oCAA8B,GAAG;YAC9B,oBAAoB,EAA1B,UACI,MAAc,EACd,KAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oCAClH,KAAK;iCACJ,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,IAAI,CACrD,IAAI,EACJ,MAAM,EACN,KAAK,CACR,CACJ,EAAA;;gCAZK,kBAAkB,GAAG,SAY1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAAc,EACd,KAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oCAClH,KAAK;iCACJ,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAAc,EACd,KAAgB;gBAEhB,IAAM,IAAI,GAAG,IAAiC,CAAC;gBAC/C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oBAChI,KAAK;iBACJ,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAAc,EACd,KAAgB,EAChB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oCAC9G,KAAK;iCACJ,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,iDAAiD,CAAC,CAAC;gCAEvF,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,gBAAU,GAAG;YACV,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gCACvC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;gCAEpD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,gBAAU,GAAG;YACV,SAAS,EAAf,UACI,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,CAAC,OAAO;iCAClF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;gCAE3D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,4BAAsB,GAAG;YACtB,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;gCACnD,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;gCAEhE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,uBAAiB,GAAG;YACjB,oBAAoB,EAA1B,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CACxC,IAAI,EACJ,QAAQ,CACX,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,QAAgB;gBAEhB,IAAM,IAAI,GAAG,IAAiC,CAAC;gBAC/C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iBAC5G,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,QAAgB,EAChB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAiC,CAAC;gCACzC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC1F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;gCAElE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QA8CE,kBAAU,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;;IACnG,CAAC;IA9CmB,4CAAyB,GAA7C,UACI,QAAmD,EACnD,iBAAoC,EACpC,UAA2B;;;;gBAE3B,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACrE;gBACK,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;gBACxC,sBAAO,kBAAkB,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAG,EAAC;;;KAChF;IACmB,8BAAW,GAA/B,UACI,QAAgB,EAChB,GAAgB,EAChB,iBAAoC,EACpC,UAA2B;;;;;;wBAErB,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC/D,cAAc,GAAG,4BAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;wBAC1D,4BAAY,CAAC,sBAAsB,CACpC,cAAc,CAAC,MAAM,EACrB,EAAE,EACF,4BAAY,CAAC,kBAAkB,CAClC,CAAC;wBACI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACxC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;wBAClC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACzC,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAC;wBACnB,qBAAM,4BAAY,CAAC,2BAA2B,CACrE,EAAC,IAAI,EAAE,MAAM,EAAC,EACd,UAAU,EACV,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CACjD,EAAA;;wBAJK,kBAAkB,GAAG,SAI1B;wBACc,qBAAM,WAAW,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;wBAAnE,MAAM,GAAG,SAA0D;wBACzE,gBAAQ,CAAC,GAAG,CAAC,sBAAoB,MAAQ,CAAC,CAAC;wBACzB,qBAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAA;;wBAAlE,SAAS,GAAG,SAAsD;wBACxE,gBAAQ,CAAC,GAAG,CAAC,yCAAuC,SAAS,CAAC,eAAiB,CAAC,CAAC;wBAC3E,gBAAgB,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,eAAyB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAChH,gBAAgB,CAAC,eAAe,GAAG,EAAE,CAAC;wBACtC,sBAAO,gBAAgB,EAAC;;;;KAC3B;IAKL,yBAAC;AAAD,CAAC,AA/eD,CAAwC,4BAAY,GA+enD,CAAC,qCAAqC;AA/e1B,gDAAkB;AAgf/B,kCAAkC\"}\n\\ No newline at end of file" + }, + { + "sha": "ad35ed5462ec077fb0c1715d19dcb0fc4dc89754", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts", + "status": "added", + "additions": 52, + "deletions": 0, + "changes": 52, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,52 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC20TokenEventArgs = ERC20TokenTransferEventArgs | ERC20TokenApprovalEventArgs;\n+export declare enum ERC20TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\"\n+}\n+export interface ERC20TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface ERC20TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export declare class ERC20TokenContract extends BaseContract {\n+ approve: {\n+ sendTransactionAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_spender: string, _value: BigNumber): string;\n+ callAsync(_spender: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string;\n+ callAsync(_from: string, _to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _value: BigNumber): string;\n+ callAsync(_to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(_owner: string, _spender: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc20_token.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "93136337176e00c984fba23b99abe9f5fc8f04ed", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,mBAAmB,GACzB,2BAA2B,GAC3B,2BAA2B,CAAC;AAElC,oBAAY,gBAAgB;IACxB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACxB;AAED,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,kBAAmB,SAAQ,YAAY;IACzC,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,SAAS;;MA2Bd;IACK,QAAQ;;;;;MAoFb;IACK,SAAS;;MA6Bd;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;WASV,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;gBAyBlB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "bb173bb962edd44ea30bc054c1b5a77bc2d03fcd", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js", + "status": "added", + "additions": 456, + "deletions": 0, + "changes": 456, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,456 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC20TokenEvents;\n+(function (ERC20TokenEvents) {\n+ ERC20TokenEvents[\"Transfer\"] = \"Transfer\";\n+ ERC20TokenEvents[\"Approval\"] = \"Approval\";\n+})(ERC20TokenEvents = exports.ERC20TokenEvents || (exports.ERC20TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC20TokenContract = /** @class */ (function (_super) {\n+ __extends(ERC20TokenContract, _super);\n+ function ERC20TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC20Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.approve = {\n+ sendTransactionAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _spender, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_spender, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_spender, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (_owner, _spender, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner,\n+ _spender\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC20TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC20TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC20Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC20TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC20TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC20TokenContract = ERC20TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc20_token.js.map\n\\ No newline at end of file" + }, + { + "sha": "4d030067eb550f7b703e695be863f8129e6c2a61", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "bed91f0f424406f8137c6e60d0487e58e7c84b69", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts", + "status": "added", + "additions": 62, + "deletions": 0, + "changes": 62, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,62 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC721ProxyEventArgs = ERC721ProxyAuthorizedAddressAddedEventArgs | ERC721ProxyAuthorizedAddressRemovedEventArgs;\n+export declare enum ERC721ProxyEvents {\n+ AuthorizedAddressAdded = \"AuthorizedAddressAdded\",\n+ AuthorizedAddressRemoved = \"AuthorizedAddressRemoved\"\n+}\n+export interface ERC721ProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface ERC721ProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export declare class ERC721ProxyContract extends BaseContract {\n+ addAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorities: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string, index: BigNumber): string;\n+ callAsync(target: string, index: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getProxyId: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorized: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAuthorizedAddresses: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc721_proxy.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "3c31fe9d2a210dc8c79df21c8863f83b6d330ad3", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_proxy.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_proxy.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,oBAAoB,GAC1B,0CAA0C,GAC1C,4CAA4C,CAAC;AAEnD,oBAAY,iBAAiB;IACzB,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;CACxD;AAED,MAAM,WAAW,0CAA2C,SAAQ,cAAc;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4CAA6C,SAAQ,cAAc;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,mBAAoB,SAAQ,YAAY;IAC1C,oBAAoB;;;;;MA2EzB;IACK,WAAW;;MA2BhB;IACK,uBAAuB;;;;;MA2E5B;IACK,KAAK;;MAyBV;IACK,8BAA8B;;;;;MAoFnC;IACK,UAAU;;MAyBf;IACK,UAAU;;MA2Bf;IACK,sBAAsB;;MAyB3B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;WASX,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;gBAyBnB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "1ae7b1b4ffaa56286edfb7d14578639dc49fc811", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js", + "status": "added", + "additions": 570, + "deletions": 0, + "changes": 570, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,570 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC721ProxyEvents;\n+(function (ERC721ProxyEvents) {\n+ ERC721ProxyEvents[\"AuthorizedAddressAdded\"] = \"AuthorizedAddressAdded\";\n+ ERC721ProxyEvents[\"AuthorizedAddressRemoved\"] = \"AuthorizedAddressRemoved\";\n+})(ERC721ProxyEvents = exports.ERC721ProxyEvents || (exports.ERC721ProxyEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC721ProxyContract = /** @class */ (function (_super) {\n+ __extends(ERC721ProxyContract, _super);\n+ function ERC721ProxyContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC721Proxy', abi, address, supportedProvider, txDefaults) || this;\n+ _this.addAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorities = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorities(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target, index))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target, index) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, index, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getProxyId = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getProxyId()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getProxyId()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorized = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorized(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorized(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAuthorizedAddresses = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC721ProxyContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC721ProxyContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC721ProxyContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC721Proxy successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC721ProxyContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC721ProxyContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC721ProxyContract = ERC721ProxyContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc721_proxy.js.map\n\\ No newline at end of file" + }, + { + "sha": "5dbb46e7fde2b84299d59a08cfeb2cb3a094795b", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_proxy.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_proxy.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "a0b2982b1ec695e780cf82f9faea97e806428c79", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts", + "status": "added", + "additions": 73, + "deletions": 0, + "changes": 73, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,73 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC721TokenEventArgs = ERC721TokenTransferEventArgs | ERC721TokenApprovalEventArgs | ERC721TokenApprovalForAllEventArgs;\n+export declare enum ERC721TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\",\n+ ApprovalForAll = \"ApprovalForAll\"\n+}\n+export interface ERC721TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _tokenId: BigNumber;\n+}\n+export interface ERC721TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _approved: string;\n+ _tokenId: BigNumber;\n+}\n+export interface ERC721TokenApprovalForAllEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _operator: string;\n+ _approved: boolean;\n+}\n+export declare class ERC721TokenContract extends BaseContract {\n+ getApproved: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_approved: string, _tokenId: BigNumber): string;\n+ callAsync(_approved: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom1: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ ownerOf: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ setApprovalForAll: {\n+ sendTransactionAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_operator: string, _approved: boolean): string;\n+ callAsync(_operator: string, _approved: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom2: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber, _data: string): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isApprovedForAll: {\n+ callAsync(_owner: string, _operator: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc721_token.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "e0d5dbf93f1c526afef93ad1d03e9395dc585353", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,oBAAoB,GAC1B,4BAA4B,GAC5B,4BAA4B,GAC5B,kCAAkC,CAAC;AAEzC,oBAAY,iBAAiB;IACzB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;CACpC;AAED,MAAM,WAAW,4BAA6B,SAAQ,cAAc;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,4BAA6B,SAAQ,cAAc;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,kCAAmC,SAAQ,cAAc;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACtB;AAMD,qBAAa,mBAAoB,SAAQ,YAAY;IAC1C,WAAW;;MA2BhB;IACK,OAAO;;;;;MAoFZ;IACK,YAAY;;;;;MA6FjB;IACK,iBAAiB;;;;;MA6FtB;IACK,OAAO;;MA2BZ;IACK,SAAS;;MA2Bd;IACK,iBAAiB;;;;;MAoFtB;IACK,iBAAiB;;;;;MAsGtB;IACK,gBAAgB;;MA6BrB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;WASX,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;gBAyBnB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "edbf650a701d469eaed1ddeb389fc6d26da6f71b", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js", + "status": "added", + "additions": 655, + "deletions": 0, + "changes": 655, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,655 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC721TokenEvents;\n+(function (ERC721TokenEvents) {\n+ ERC721TokenEvents[\"Transfer\"] = \"Transfer\";\n+ ERC721TokenEvents[\"Approval\"] = \"Approval\";\n+ ERC721TokenEvents[\"ApprovalForAll\"] = \"ApprovalForAll\";\n+})(ERC721TokenEvents = exports.ERC721TokenEvents || (exports.ERC721TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC721TokenContract = /** @class */ (function (_super) {\n+ __extends(ERC721TokenContract, _super);\n+ function ERC721TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC721Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.getApproved = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getApproved(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _approved, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_approved, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_approved, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom1 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom1.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.ownerOf = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.setApprovalForAll = {\n+ sendTransactionAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.setApprovalForAll.estimateGasAsync.bind(self, _operator, _approved))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_operator, _approved) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_operator, _approved, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom2 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom2.estimateGasAsync.bind(self, _from, _to, _tokenId, _data))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId, _data) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, _data, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isApprovedForAll = {\n+ callAsync: function (_owner, _operator, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [_owner,\n+ _operator\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC721TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC721TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC721Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC721TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC721TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC721TokenContract = ERC721TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc721_token.js.map\n\\ No newline at end of file" + }, + { + "sha": "468201016e2b3792020504a9a09f636ace671b33", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "8ed91de62f164f5ac83f122850cd1fa2a7d2e82b", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts", + "status": "added", + "additions": 1041, + "deletions": 0, + "changes": 1041, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,1041 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ExchangeEventArgs = ExchangeSignatureValidatorApprovalEventArgs | ExchangeFillEventArgs | ExchangeCancelEventArgs | ExchangeCancelUpToEventArgs | ExchangeAssetProxyRegisteredEventArgs;\n+export declare enum ExchangeEvents {\n+ SignatureValidatorApproval = \"SignatureValidatorApproval\",\n+ Fill = \"Fill\",\n+ Cancel = \"Cancel\",\n+ CancelUpTo = \"CancelUpTo\",\n+ AssetProxyRegistered = \"AssetProxyRegistered\"\n+}\n+export interface ExchangeSignatureValidatorApprovalEventArgs extends DecodedLogArgs {\n+ signerAddress: string;\n+ validatorAddress: string;\n+ approved: boolean;\n+}\n+export interface ExchangeFillEventArgs extends DecodedLogArgs {\n+ makerAddress: string;\n+ feeRecipientAddress: string;\n+ takerAddress: string;\n+ senderAddress: string;\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ orderHash: string;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+}\n+export interface ExchangeCancelEventArgs extends DecodedLogArgs {\n+ makerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ orderHash: string;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+}\n+export interface ExchangeCancelUpToEventArgs extends DecodedLogArgs {\n+ makerAddress: string;\n+ senderAddress: string;\n+ orderEpoch: BigNumber;\n+}\n+export interface ExchangeAssetProxyRegisteredEventArgs extends DecodedLogArgs {\n+ id: string;\n+ assetProxy: string;\n+}\n+export declare class ExchangeContract extends BaseContract {\n+ filled: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchFillOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ cancelled: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ preSign: {\n+ sendTransactionAsync(hash: string, signerAddress: string, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(hash: string, signerAddress: string, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(hash: string, signerAddress: string, signature: string): string;\n+ callAsync(hash: string, signerAddress: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ matchOrders: {\n+ sendTransactionAsync(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string, txData?: Partial): Promise;\n+ estimateGasAsync(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string): string;\n+ callAsync(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ left: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ right: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ leftMakerAssetSpreadAmount: BigNumber;\n+ }>;\n+ };\n+ fillOrderNoThrow: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ assetProxies: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchCancelOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchFillOrKillOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ cancelOrdersUpTo: {\n+ sendTransactionAsync(targetOrderEpoch: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(targetOrderEpoch: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(targetOrderEpoch: BigNumber): string;\n+ callAsync(targetOrderEpoch: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchFillOrdersNoThrow: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ getAssetProxy: {\n+ callAsync(assetProxyId: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transactions: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ fillOrKillOrder: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ setSignatureValidatorApproval: {\n+ sendTransactionAsync(validatorAddress: string, approval: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(validatorAddress: string, approval: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(validatorAddress: string, approval: boolean): string;\n+ callAsync(validatorAddress: string, approval: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowedValidators: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketSellOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ getOrdersInfo: {\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }[]>;\n+ };\n+ preSigned: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isValidSignature: {\n+ callAsync(hash: string, signerAddress: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketBuyOrdersNoThrow: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ fillOrder: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ executeTransaction: {\n+ sendTransactionAsync(salt: BigNumber, signerAddress: string, data: string, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(salt: BigNumber, signerAddress: string, data: string, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(salt: BigNumber, signerAddress: string, data: string, signature: string): string;\n+ callAsync(salt: BigNumber, signerAddress: string, data: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ registerAssetProxy: {\n+ sendTransactionAsync(assetProxy: string, txData?: Partial): Promise;\n+ estimateGasAsync(assetProxy: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetProxy: string): string;\n+ callAsync(assetProxy: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getOrderInfo: {\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }>;\n+ };\n+ cancelOrder: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ orderEpoch: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ ZRX_ASSET_DATA: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketSellOrdersNoThrow: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ EIP712_DOMAIN_HASH: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketBuyOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ currentContextAddress: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ VERSION: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _zrxAssetData: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _zrxAssetData: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=exchange.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "7fbc078b52c8c2a2a137516cb177e95df4991571", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"exchange.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/exchange.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "c184dc4b0575242456223e9e1586e331e0ae208b", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js", + "status": "added", + "additions": 2129, + "deletions": 0, + "changes": 2129, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2e0dac0201b3f4fae77d839e91b6f5e941b9abf4", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"exchange.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/exchange.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uGAAuG;AACvG,oCAAoC;AACpC,mCAAmC;AACnC,mDAAiD;AAEjD,mCAA2E;AAE3E,iDAA+C;AAC/C,+BAAiC;AACjC,0BAA4B;AAU5B,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,2EAAyD,CAAA;IACzD,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,2CAAyB,CAAA;IACzB,+DAA6C,CAAA;AACjD,CAAC,EANW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAMzB;AA2CD,0BAA0B;AAC1B,2CAA2C;AAC3C,sCAAsC;AACtC;IAAsC,oCAAY;IA4pE9C,0BAAY,GAAgB,EAAE,OAAe,EAAE,iBAAoC,EAAE,UAA4B;QAAjH,YACI,kBAAM,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAEjE;QA9pEM,YAAM,GAAG;YACN,SAAS,EAAf,UACI,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,CAAC,OAAO;iCAC9E,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;gCAEvD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,qBAAe,GAAG;YACf,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oIAAoI,EAAE,CAAC,MAAM;oCACrM,qBAAqB;oCACrB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CACtC,IAAI,EACJ,MAAM,EACN,qBAAqB,EACrB,UAAU,CACb,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oIAAoI,EAAE,CAAC,MAAM;oCACrM,qBAAqB;oCACrB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB;gBAEpB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,oIAAoI,EAAE,CAAC,MAAM;oBACnN,qBAAqB;oBACrB,UAAU;iBACT,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oIAAoI,EAAE,CAAC,MAAM;oCACjM,qBAAqB;oCACrB,UAAU;iCACT,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,oIAAoI,CAAC,CAAC;gCAE1K,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,eAAS,GAAG;YACT,SAAS,EAAf,UACI,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,CAAC,OAAO;iCACjF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;gCAE1D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,aAAO,GAAG;YACP,oBAAoB,EAA1B,UACI,IAAY,EACZ,aAAqB,EACrB,SAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,gCAAgC,EAAE,CAAC,IAAI;oCAC/F,aAAa;oCACb,SAAS;iCACR,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAC9B,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,SAAS,CACZ,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,IAAY,EACZ,aAAqB,EACrB,SAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,gCAAgC,EAAE,CAAC,IAAI;oCAC/F,aAAa;oCACb,SAAS;iCACR,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,IAAY,EACZ,aAAqB,EACrB,SAAiB;gBAEjB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,gCAAgC,EAAE,CAAC,IAAI;oBAC7G,aAAa;oBACb,SAAS;iBACR,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,IAAY,EACZ,aAAqB,EACrB,SAAiB,EACjB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,gCAAgC,EAAE,CAAC,IAAI;oCAC3F,aAAa;oCACb,SAAS;iCACR,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,CAAC;gCAEtE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,iBAAW,GAAG;YACX,oBAAoB,EAA1B,UACI,SAAuS,EACvS,UAAwS,EACxS,aAAqB,EACrB,cAAsB,EACtB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,sNAAsN,EAAE,CAAC,SAAS;oCAC1R,UAAU;oCACV,aAAa;oCACb,cAAc;iCACb,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAClC,IAAI,EACJ,SAAS,EACT,UAAU,EACV,aAAa,EACb,cAAc,CACjB,CACJ,EAAA;;gCAdK,kBAAkB,GAAG,SAc1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,SAAuS,EACvS,UAAwS,EACxS,aAAqB,EACrB,cAAsB,EACtB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,sNAAsN,EAAE,CAAC,SAAS;oCAC1R,UAAU;oCACV,aAAa;oCACb,cAAc;iCACb,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,SAAuS,EACvS,UAAwS,EACxS,aAAqB,EACrB,cAAsB;gBAEtB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,sNAAsN,EAAE,CAAC,SAAS;oBACxS,UAAU;oBACV,aAAa;oBACb,cAAc;iBACb,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,SAAuS,EACvS,UAAwS,EACxS,aAAqB,EACrB,cAAsB,EACtB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,sNAAsN,EAAE,CAAC,SAAS;oCACtR,UAAU;oCACV,aAAa;oCACb,cAAc;iCACb,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,sNAAsN,CAAC,CAAC;gCAE5P,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,sBAAgB,GAAG;YAChB,oBAAoB,EAA1B,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+HAA+H,EAAE,CAAC,KAAK;oCAC/L,oBAAoB;oCACpB,SAAS;iCACR,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CACvC,IAAI,EACJ,KAAK,EACL,oBAAoB,EACpB,SAAS,CACZ,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+HAA+H,EAAE,CAAC,KAAK;oCAC/L,oBAAoB;oCACpB,SAAS;iCACR,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB;gBAEjB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,+HAA+H,EAAE,CAAC,KAAK;oBAC7M,oBAAoB;oBACpB,SAAS;iBACR,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB,EACjB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+HAA+H,EAAE,CAAC,KAAK;oCAC3L,oBAAoB;oCACpB,SAAS;iCACR,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,+HAA+H,CAAC,CAAC;gCAErK,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,kBAAY,GAAG;YACZ,SAAS,EAAf,UACI,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC,OAAO;iCACnF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;gCAE5D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,uBAAiB,GAAG;YACjB,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oHAAoH,EAAE,CAAC,MAAM;iCACpL,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CACxC,IAAI,EACJ,MAAM,CACT,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oHAAoH,EAAE,CAAC,MAAM;iCACpL,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S;gBAE3S,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,oHAAoH,EAAE,CAAC,MAAM;iBAClM,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oHAAoH,EAAE,CAAC,MAAM;iCAChL,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,oHAAoH,CAAC,CAAC;gCAE1J,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,2BAAqB,GAAG;YACrB,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0IAA0I,EAAE,CAAC,MAAM;oCAC3M,qBAAqB;oCACrB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAC5C,IAAI,EACJ,MAAM,EACN,qBAAqB,EACrB,UAAU,CACb,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0IAA0I,EAAE,CAAC,MAAM;oCAC3M,qBAAqB;oCACrB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB;gBAEpB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,0IAA0I,EAAE,CAAC,MAAM;oBACzN,qBAAqB;oBACrB,UAAU;iBACT,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0IAA0I,EAAE,CAAC,MAAM;oCACvM,qBAAqB;oCACrB,UAAU;iCACT,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,0IAA0I,CAAC,CAAC;gCAEhL,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,sBAAgB,GAAG;YAChB,oBAAoB,EAA1B,UACI,gBAA2B,EAC3B,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,gBAAgB;iCACrG,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CACvC,IAAI,EACJ,gBAAgB,CACnB,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,gBAA2B,EAC3B,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,gBAAgB;iCACrG,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,gBAA2B;gBAE3B,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,gBAAgB;iBACnH,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,gBAA2B,EAC3B,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,gBAAgB;iCACjG,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;gCAEjE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,4BAAsB,GAAG;YACtB,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2IAA2I,EAAE,CAAC,MAAM;oCAC5M,qBAAqB;oCACrB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAC7C,IAAI,EACJ,MAAM,EACN,qBAAqB,EACrB,UAAU,CACb,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2IAA2I,EAAE,CAAC,MAAM;oCAC5M,qBAAqB;oCACrB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB;gBAEpB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,2IAA2I,EAAE,CAAC,MAAM;oBAC1N,qBAAqB;oBACrB,UAAU;iBACT,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,qBAAkC,EAClC,UAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2IAA2I,EAAE,CAAC,MAAM;oCACxM,qBAAqB;oCACrB,UAAU;iCACT,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,2IAA2I,CAAC,CAAC;gCAEjL,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,mBAAa,GAAG;YACb,SAAS,EAAf,UACI,YAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC,YAAY;iCACzF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;gCAE7D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,kBAAY,GAAG;YACZ,SAAS,EAAf,UACI,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC,OAAO;iCACpF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;gCAE7D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,qBAAe,GAAG;YACf,oBAAoB,EAA1B,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,8HAA8H,EAAE,CAAC,KAAK;oCAC9L,oBAAoB;oCACpB,SAAS;iCACR,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CACtC,IAAI,EACJ,KAAK,EACL,oBAAoB,EACpB,SAAS,CACZ,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,8HAA8H,EAAE,CAAC,KAAK;oCAC9L,oBAAoB;oCACpB,SAAS;iCACR,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB;gBAEjB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,8HAA8H,EAAE,CAAC,KAAK;oBAC5M,oBAAoB;oBACpB,SAAS;iBACR,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB,EACjB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,8HAA8H,EAAE,CAAC,KAAK;oCAC1L,oBAAoB;oCACpB,SAAS;iCACR,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,8HAA8H,CAAC,CAAC;gCAEpK,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,mCAA6B,GAAG;YAC7B,oBAAoB,EAA1B,UACI,gBAAwB,EACxB,QAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,6CAA6C,EAAE,CAAC,gBAAgB;oCACxH,QAAQ;iCACP,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,IAAI,CACpD,IAAI,EACJ,gBAAgB,EAChB,QAAQ,CACX,CACJ,EAAA;;gCAZK,kBAAkB,GAAG,SAY1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,gBAAwB,EACxB,QAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,6CAA6C,EAAE,CAAC,gBAAgB;oCACxH,QAAQ;iCACP,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,gBAAwB,EACxB,QAAiB;gBAEjB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,6CAA6C,EAAE,CAAC,gBAAgB;oBACtI,QAAQ;iBACP,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,gBAAwB,EACxB,QAAiB,EACjB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,6CAA6C,EAAE,CAAC,gBAAgB;oCACpH,QAAQ;iCACP,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,6CAA6C,CAAC,CAAC;gCAEnF,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,uBAAiB,GAAG;YACjB,SAAS,EAAf,UACI,OAAe,EACf,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oCAAoC,EAAE,CAAC,OAAO;oCAClG,OAAO;iCACN,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,oCAAoC,CAAC,CAAC;gCAE1E,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,sBAAgB,GAAG;YAChB,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,mIAAmI,EAAE,CAAC,MAAM;oCACpM,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CACvC,IAAI,EACJ,MAAM,EACN,oBAAoB,EACpB,UAAU,CACb,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,mIAAmI,EAAE,CAAC,MAAM;oCACpM,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB;gBAEpB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,mIAAmI,EAAE,CAAC,MAAM;oBAClN,oBAAoB;oBACpB,UAAU;iBACT,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,mIAAmI,EAAE,CAAC,MAAM;oCAChM,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,mIAAmI,CAAC,CAAC;gCAEzK,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,mBAAa,GAAG;YACb,SAAS,EAAf,UACI,MAA2S,EAC3S,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,gHAAgH,EAAE,CAAC,MAAM;iCAC5K,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,gHAAgH,CAAC,CAAC;gCAEtJ,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,eAAS,GAAG;YACT,SAAS,EAAf,UACI,OAAe,EACf,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,OAAO;oCAC1F,OAAO;iCACN,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;gCAElE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,WAAK,GAAG;YACL,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gCAClC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gCAE/C,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,sBAAgB,GAAG;YAChB,SAAS,EAAf,UACI,IAAY,EACZ,aAAqB,EACrB,SAAiB,EACjB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,yCAAyC,EAAE,CAAC,IAAI;oCACpG,aAAa;oCACb,SAAS;iCACR,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,yCAAyC,CAAC,CAAC;gCAE/E,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,4BAAsB,GAAG;YACtB,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,yIAAyI,EAAE,CAAC,MAAM;oCAC1M,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAC7C,IAAI,EACJ,MAAM,EACN,oBAAoB,EACpB,UAAU,CACb,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,yIAAyI,EAAE,CAAC,MAAM;oCAC1M,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB;gBAEpB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,yIAAyI,EAAE,CAAC,MAAM;oBACxN,oBAAoB;oBACpB,UAAU;iBACT,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,yIAAyI,EAAE,CAAC,MAAM;oCACtM,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,yIAAyI,CAAC,CAAC;gCAE/K,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,eAAS,GAAG;YACT,oBAAoB,EAA1B,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,wHAAwH,EAAE,CAAC,KAAK;oCACxL,oBAAoB;oCACpB,SAAS;iCACR,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAChC,IAAI,EACJ,KAAK,EACL,oBAAoB,EACpB,SAAS,CACZ,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,wHAAwH,EAAE,CAAC,KAAK;oCACxL,oBAAoB;oCACpB,SAAS;iCACR,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB;gBAEjB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,wHAAwH,EAAE,CAAC,KAAK;oBACtM,oBAAoB;oBACpB,SAAS;iBACR,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,KAAmS,EACnS,oBAA+B,EAC/B,SAAiB,EACjB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,wHAAwH,EAAE,CAAC,KAAK;oCACpL,oBAAoB;oCACpB,SAAS;iCACR,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,wHAAwH,CAAC,CAAC;gCAE9J,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,wBAAkB,GAAG;YAClB,oBAAoB,EAA1B,UACI,IAAe,EACf,aAAqB,EACrB,IAAY,EACZ,SAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,IAAI;oCAChH,aAAa;oCACb,IAAI;oCACJ,SAAS;iCACR,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CACzC,IAAI,EACJ,IAAI,EACJ,aAAa,EACb,IAAI,EACJ,SAAS,CACZ,CACJ,EAAA;;gCAdK,kBAAkB,GAAG,SAc1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,IAAe,EACf,aAAqB,EACrB,IAAY,EACZ,SAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,IAAI;oCAChH,aAAa;oCACb,IAAI;oCACJ,SAAS;iCACR,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,IAAe,EACf,aAAqB,EACrB,IAAY,EACZ,SAAiB;gBAEjB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,IAAI;oBAC9H,aAAa;oBACb,IAAI;oBACJ,SAAS;iBACR,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,IAAe,EACf,aAAqB,EACrB,IAAY,EACZ,SAAiB,EACjB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,IAAI;oCAC5G,aAAa;oCACb,IAAI;oCACJ,SAAS;iCACR,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,iDAAiD,CAAC,CAAC;gCAEvF,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,wBAAkB,GAAG;YAClB,oBAAoB,EAA1B,UACI,UAAkB,EAClB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,6BAA6B,EAAE,CAAC,UAAU;iCACjG,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CACzC,IAAI,EACJ,UAAU,CACb,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,UAAkB,EAClB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,6BAA6B,EAAE,CAAC,UAAU;iCACjG,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,UAAkB;gBAElB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,6BAA6B,EAAE,CAAC,UAAU;iBAC/G,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,UAAkB,EAClB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,6BAA6B,EAAE,CAAC,UAAU;iCAC7F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,CAAC;gCAEnE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,kBAAY,GAAG;YACZ,SAAS,EAAf,UACI,KAAmS,EACnS,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,6GAA6G,EAAE,CAAC,KAAK;iCACxK,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,6GAA6G,CAAC,CAAC;gCAEnJ,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,iBAAW,GAAG;YACX,oBAAoB,EAA1B,UACI,KAAmS,EACnS,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4GAA4G,EAAE,CAAC,KAAK;iCAC3K,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAClC,IAAI,EACJ,KAAK,CACR,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,KAAmS,EACnS,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4GAA4G,EAAE,CAAC,KAAK;iCAC3K,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,KAAmS;gBAEnS,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,4GAA4G,EAAE,CAAC,KAAK;iBACzL,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,KAAmS,EACnS,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4GAA4G,EAAE,CAAC,KAAK;iCACvK,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4GAA4G,CAAC,CAAC;gCAElJ,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,gBAAU,GAAG;YACV,SAAS,EAAf,UACI,OAAe,EACf,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,6BAA6B,EAAE,CAAC,OAAO;oCAC3F,OAAO;iCACN,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,CAAC;gCAEnE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,oBAAc,GAAG;YACd,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;gCAC3C,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;gCAExD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,6BAAuB,GAAG;YACvB,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0IAA0I,EAAE,CAAC,MAAM;oCAC3M,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAC9C,IAAI,EACJ,MAAM,EACN,oBAAoB,EACpB,UAAU,CACb,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0IAA0I,EAAE,CAAC,MAAM;oCAC3M,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB;gBAEpB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,0IAA0I,EAAE,CAAC,MAAM;oBACzN,oBAAoB;oBACpB,UAAU;iBACT,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0IAA0I,EAAE,CAAC,MAAM;oCACvM,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,0IAA0I,CAAC,CAAC;gCAEhL,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,wBAAkB,GAAG;YAClB,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;gCAC/C,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;gCAE5D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,qBAAe,GAAG;YACf,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kIAAkI,EAAE,CAAC,MAAM;oCACnM,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CACtC,IAAI,EACJ,MAAM,EACN,oBAAoB,EACpB,UAAU,CACb,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kIAAkI,EAAE,CAAC,MAAM;oCACnM,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB;gBAEpB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,kIAAkI,EAAE,CAAC,MAAM;oBACjN,oBAAoB;oBACpB,UAAU;iBACT,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kIAAkI,EAAE,CAAC,MAAM;oCAC/L,oBAAoB;oCACpB,UAAU;iCACT,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,kIAAkI,CAAC,CAAC;gCAExK,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,2BAAqB,GAAG;YACrB,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;gCAClD,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;gCAE/D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,uBAAiB,GAAG;YACjB,oBAAoB,EAA1B,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CACxC,IAAI,EACJ,QAAQ,CACX,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,QAAgB;gBAEhB,IAAM,IAAI,GAAG,IAA+B,CAAC;gBAC7C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iBAC5G,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,QAAgB,EAChB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC1F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;gCAElE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,aAAO,GAAG;YACP,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA+B,CAAC;gCACvC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gCACpC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gCAEjD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QAqDE,kBAAU,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;;IACnG,CAAC;IArDmB,0CAAyB,GAA7C,UACI,QAAmD,EACnD,iBAAoC,EACpC,UAA2B,EACvB,aAAqB;;;;gBAEzB,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACrE;gBACK,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;gBACxC,sBAAO,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAC7F,EAAC;;;KACG;IACmB,4BAAW,GAA/B,UACI,QAAgB,EAChB,GAAgB,EAChB,iBAAoC,EACpC,UAA2B,EACvB,aAAqB;;;;;;wBAEnB,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC/D,cAAc,GAAG,4BAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;wBAC/D;+EAMC,EANA,qBAAa,CAMZ;wBACI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACxC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;wBAClC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,aAAa;yBAChE,CAAC,CAAC;wBACW,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAC;wBACnB,qBAAM,4BAAY,CAAC,2BAA2B,CACrE,EAAC,IAAI,EAAE,MAAM,EAAC,EACd,UAAU,EACV,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CACjD,EAAA;;wBAJK,kBAAkB,GAAG,SAI1B;wBACc,qBAAM,WAAW,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;wBAAnE,MAAM,GAAG,SAA0D;wBACzE,gBAAQ,CAAC,GAAG,CAAC,sBAAoB,MAAQ,CAAC,CAAC;wBACzB,qBAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAA;;wBAAlE,SAAS,GAAG,SAAsD;wBACxE,gBAAQ,CAAC,GAAG,CAAC,uCAAqC,SAAS,CAAC,eAAiB,CAAC,CAAC;wBACzE,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,eAAyB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC9G,gBAAgB,CAAC,eAAe,GAAG,CAAC,aAAa;yBACxD,CAAC;wBACM,sBAAO,gBAAgB,EAAC;;;;KAC3B;IAKL,uBAAC;AAAD,CAAC,AAhqED,CAAsC,4BAAY,GAgqEjD,CAAC,qCAAqC;AAhqE1B,4CAAgB;AAiqE7B,kCAAkC\"}\n\\ No newline at end of file" + }, + { + "sha": "01fc9ce0b5740090698f702440bce26c75b8e8a4", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts", + "status": "added", + "additions": 265, + "deletions": 0, + "changes": 265, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,265 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class ForwarderContract extends BaseContract {\n+ marketBuyOrdersWithEth: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }, {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }]>;\n+ };\n+ withdrawAsset: {\n+ sendTransactionAsync(assetData: string, amount: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(assetData: string, amount: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetData: string, amount: BigNumber): string;\n+ callAsync(assetData: string, amount: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketSellOrdersWithEth: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }, {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }]>;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string, _wethAssetData: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string, _wethAssetData: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=forwarder.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "d07d03a21eda04a3e3f73b773b1fb8f52a182b70", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"forwarder.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/forwarder.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,iBAAkB,SAAQ,YAAY;IACxC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiI3B;IACK,aAAa;;;;;MAoFlB;IACK,KAAK;;MAyBV;IACK,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyH5B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAC3B,OAAO,CAAC,iBAAiB,CAAC;WAYT,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAC3B,OAAO,CAAC,iBAAiB,CAAC;gBAqCjB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "3de7ca0af0018419270e8ec3ce5384cc4aacc486", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js", + "status": "added", + "additions": 528, + "deletions": 0, + "changes": 528, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,528 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ForwarderContract = /** @class */ (function (_super) {\n+ __extends(ForwarderContract, _super);\n+ function ForwarderContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'Forwarder', abi, address, supportedProvider, txDefaults) || this;\n+ _this.marketBuyOrdersWithEth = {\n+ sendTransactionAsync: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.marketBuyOrdersWithEth.estimateGasAsync.bind(self, orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.withdrawAsset = {\n+ sendTransactionAsync: function (assetData, amount, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.withdrawAsset.estimateGasAsync.bind(self, assetData, amount))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (assetData, amount, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (assetData, amount) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (assetData, amount, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('withdrawAsset(bytes,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.marketSellOrdersWithEth = {\n+ sendTransactionAsync: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.marketSellOrdersWithEth.estimateGasAsync.bind(self, orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ console.log(txDataWithDefaults);\n+ // const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);\n+ return [2 /*return*/, '123'];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ForwarderContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _exchange, _zrxAssetData, _wethAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ForwarderContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange, _zrxAssetData, _wethAssetData)];\n+ });\n+ });\n+ };\n+ ForwarderContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _exchange, _zrxAssetData, _wethAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_exchange,\n+ _zrxAssetData,\n+ _wethAssetData\n+ ], base_contract_1.BaseContract._bigNumberToString), 3), _exchange = _a[0], _zrxAssetData = _a[1], _wethAssetData = _a[2];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_exchange,\n+ _zrxAssetData,\n+ _wethAssetData\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"Forwarder successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ForwarderContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_exchange,\n+ _zrxAssetData,\n+ _wethAssetData\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ForwarderContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ForwarderContract = ForwarderContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=forwarder.js.map\n\\ No newline at end of file" + }, + { + "sha": "977c82833f35cfd6ffd2ac35e32a5937b7d68846", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"forwarder.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/forwarder.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "c66e0b9c5415ddb266013a29325f9c86df3b5695", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts", + "status": "added", + "additions": 12, + "deletions": 0, + "changes": 12, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,12 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class IValidatorContract extends BaseContract {\n+ isValidSignature: {\n+ callAsync(hash: string, signerAddress: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=i_validator.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "d4a6c106597e7085514252c01826d29c517a0ffe", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_validator.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_validator.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE7K,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,kBAAmB,SAAQ,YAAY;IACzC,gBAAgB;;MA+BrB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;WASV,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;gBAyBlB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "ea92ccde8a8fc0e487e1a4cc1fb4e3a6a83a2199", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js", + "status": "added", + "additions": 159, + "deletions": 0, + "changes": 159, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,159 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var IValidatorContract = /** @class */ (function (_super) {\n+ __extends(IValidatorContract, _super);\n+ function IValidatorContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'IValidator', abi, address, supportedProvider, txDefaults) || this;\n+ _this.isValidSignature = {\n+ callAsync: function (hash, signerAddress, signature, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [hash,\n+ signerAddress,\n+ signature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,address,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ IValidatorContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, IValidatorContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ IValidatorContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"IValidator successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new IValidatorContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return IValidatorContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.IValidatorContract = IValidatorContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=i_validator.js.map\n\\ No newline at end of file" + }, + { + "sha": "dd64632ce1dd2ca52ddcfa7642396dacc4668e1b", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_validator.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_validator.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "1748e3800565fa9a5b4de65795a23e6aebe1da2c", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts", + "status": "added", + "additions": 12, + "deletions": 0, + "changes": 12, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,12 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class IWalletContract extends BaseContract {\n+ isValidSignature: {\n+ callAsync(hash: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=i_wallet.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "fc84b38c57d618f7efe1f9e435e4ffb1a3cc0a4f", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_wallet.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_wallet.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE7K,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,eAAgB,SAAQ,YAAY;IACtC,gBAAgB;;MA6BrB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC;WASP,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC;gBAyBf,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "273ee09ef2c75dc7db0d2b604c795ce10b8e9f41", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js", + "status": "added", + "additions": 158, + "deletions": 0, + "changes": 158, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,158 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var IWalletContract = /** @class */ (function (_super) {\n+ __extends(IWalletContract, _super);\n+ function IWalletContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'IWallet', abi, address, supportedProvider, txDefaults) || this;\n+ _this.isValidSignature = {\n+ callAsync: function (hash, signature, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isValidSignature(bytes32,bytes)', [hash,\n+ signature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ IWalletContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, IWalletContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ IWalletContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"IWallet successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new IWalletContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return IWalletContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.IWalletContract = IWalletContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=i_wallet.js.map\n\\ No newline at end of file" + }, + { + "sha": "f74c3f91963c94cade6d68940ebf25fbcdc88ee4", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_wallet.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_wallet.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "023416dc8d2ba971ae5344ccbc387a1d757bc52d", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts", + "status": "added", + "additions": 79, + "deletions": 0, + "changes": 79, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,79 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type MultiAssetProxyEventArgs = MultiAssetProxyAuthorizedAddressAddedEventArgs | MultiAssetProxyAuthorizedAddressRemovedEventArgs | MultiAssetProxyAssetProxyRegisteredEventArgs;\n+export declare enum MultiAssetProxyEvents {\n+ AuthorizedAddressAdded = \"AuthorizedAddressAdded\",\n+ AuthorizedAddressRemoved = \"AuthorizedAddressRemoved\",\n+ AssetProxyRegistered = \"AssetProxyRegistered\"\n+}\n+export interface MultiAssetProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface MultiAssetProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface MultiAssetProxyAssetProxyRegisteredEventArgs extends DecodedLogArgs {\n+ id: string;\n+ assetProxy: string;\n+}\n+export declare class MultiAssetProxyContract extends BaseContract {\n+ assetProxies: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ addAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorities: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAssetProxy: {\n+ callAsync(assetProxyId: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string, index: BigNumber): string;\n+ callAsync(target: string, index: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getProxyId: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorized: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ registerAssetProxy: {\n+ sendTransactionAsync(assetProxy: string, txData?: Partial): Promise;\n+ estimateGasAsync(assetProxy: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetProxy: string): string;\n+ callAsync(assetProxy: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAuthorizedAddresses: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=multi_asset_proxy.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "4ba97b39ff0983fff980efaaad9cccdc7690f629", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"multi_asset_proxy.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/multi_asset_proxy.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,wBAAwB,GAC9B,8CAA8C,GAC9C,gDAAgD,GAChD,4CAA4C,CAAC;AAEnD,oBAAY,qBAAqB;IAC7B,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;IACrD,oBAAoB,yBAAyB;CAChD;AAED,MAAM,WAAW,8CAA+C,SAAQ,cAAc;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gDAAiD,SAAQ,cAAc;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4CAA6C,SAAQ,cAAc;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,qBAAa,uBAAwB,SAAQ,YAAY;IAC9C,YAAY;;MA2BjB;IACK,oBAAoB;;;;;MA2EzB;IACK,WAAW;;MA2BhB;IACK,aAAa;;MA2BlB;IACK,uBAAuB;;;;;MA2E5B;IACK,KAAK;;MAyBV;IACK,8BAA8B;;;;;MAoFnC;IACK,UAAU;;MAyBf;IACK,UAAU;;MA2Bf;IACK,kBAAkB;;;;;MA2EvB;IACK,sBAAsB;;MAyB3B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,uBAAuB,CAAC;WASf,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,uBAAuB,CAAC;gBAyBvB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "486bed5e49a36f92da3ec0826da5d6ffb4219af0", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js", + "status": "added", + "additions": 700, + "deletions": 0, + "changes": 700, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,700 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var MultiAssetProxyEvents;\n+(function (MultiAssetProxyEvents) {\n+ MultiAssetProxyEvents[\"AuthorizedAddressAdded\"] = \"AuthorizedAddressAdded\";\n+ MultiAssetProxyEvents[\"AuthorizedAddressRemoved\"] = \"AuthorizedAddressRemoved\";\n+ MultiAssetProxyEvents[\"AssetProxyRegistered\"] = \"AssetProxyRegistered\";\n+})(MultiAssetProxyEvents = exports.MultiAssetProxyEvents || (exports.MultiAssetProxyEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var MultiAssetProxyContract = /** @class */ (function (_super) {\n+ __extends(MultiAssetProxyContract, _super);\n+ function MultiAssetProxyContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'MultiAssetProxy', abi, address, supportedProvider, txDefaults) || this;\n+ _this.assetProxies = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('assetProxies(bytes4)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.addAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorities = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorities(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAssetProxy = {\n+ callAsync: function (assetProxyId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAssetProxy(bytes4)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target, index))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target, index) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, index, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getProxyId = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getProxyId()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getProxyId()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorized = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorized(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorized(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.registerAssetProxy = {\n+ sendTransactionAsync: function (assetProxy, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.registerAssetProxy.estimateGasAsync.bind(self, assetProxy))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (assetProxy, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (assetProxy) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (assetProxy, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('registerAssetProxy(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAuthorizedAddresses = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ MultiAssetProxyContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, MultiAssetProxyContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ MultiAssetProxyContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"MultiAssetProxy successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new MultiAssetProxyContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return MultiAssetProxyContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.MultiAssetProxyContract = MultiAssetProxyContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=multi_asset_proxy.js.map\n\\ No newline at end of file" + }, + { + "sha": "12503ccfc4394128496f326fa68c00a4a85e8839", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"multi_asset_proxy.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/multi_asset_proxy.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "dcd88491840814007013fd43e65d703b06525d06", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts", + "status": "added", + "additions": 127, + "deletions": 0, + "changes": 127, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,127 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class OrderValidatorContract extends BaseContract {\n+ getOrderAndTraderInfo: {\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAddress: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }, {\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }]>;\n+ };\n+ getBalanceAndAllowance: {\n+ callAsync(target: string, assetData: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[BigNumber, BigNumber]>;\n+ };\n+ getOrdersAndTradersInfo: {\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAddresses: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }[], {\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }[]]>;\n+ };\n+ getTradersInfo: {\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAddresses: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }[]>;\n+ };\n+ getERC721TokenOwner: {\n+ callAsync(token: string, tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getBalancesAndAllowances: {\n+ callAsync(target: string, assetData: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[BigNumber[], BigNumber[]]>;\n+ };\n+ getTraderInfo: {\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAddress: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }>;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=order_validator.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "bbdb4c368c63226961beb1a03b13380a4ab22757", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"order_validator.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/order_validator.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,sBAAuB,SAAQ,YAAY;IAC7C,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6B1B;IACK,sBAAsB;;MA6B3B;IACK,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6B5B;IACK,cAAc;;;;;;;;;;;;;;;;;;;;;;;;MA6BnB;IACK,mBAAmB;;MA6BxB;IACK,wBAAwB;;MA6B7B;IACK,aAAa;;;;;;;;;;;;;;;;;;;;;;;;MA6BlB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GAC1B,OAAO,CAAC,sBAAsB,CAAC;WAWd,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GAC1B,OAAO,CAAC,sBAAsB,CAAC;gBAiCtB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "4dc6e383730c01cf9f5ca67651ea31d555d758f8", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js", + "status": "added", + "additions": 348, + "deletions": 0, + "changes": 348, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,348 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var OrderValidatorContract = /** @class */ (function (_super) {\n+ __extends(OrderValidatorContract, _super);\n+ function OrderValidatorContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'OrderValidator', abi, address, supportedProvider, txDefaults) || this;\n+ _this.getOrderAndTraderInfo = {\n+ callAsync: function (order, takerAddress, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', [order,\n+ takerAddress\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getBalanceAndAllowance = {\n+ callAsync: function (target, assetData, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getBalanceAndAllowance(address,bytes)', [target,\n+ assetData\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getBalanceAndAllowance(address,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getOrdersAndTradersInfo = {\n+ callAsync: function (orders, takerAddresses, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', [orders,\n+ takerAddresses\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTradersInfo = {\n+ callAsync: function (orders, takerAddresses, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', [orders,\n+ takerAddresses\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getERC721TokenOwner = {\n+ callAsync: function (token, tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getERC721TokenOwner(address,uint256)', [token,\n+ tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getERC721TokenOwner(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getBalancesAndAllowances = {\n+ callAsync: function (target, assetData, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getBalancesAndAllowances(address,bytes[])', [target,\n+ assetData\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getBalancesAndAllowances(address,bytes[])');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTraderInfo = {\n+ callAsync: function (order, takerAddress, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', [order,\n+ takerAddress\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ OrderValidatorContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _exchange, _zrxAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, OrderValidatorContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange, _zrxAssetData)];\n+ });\n+ });\n+ };\n+ OrderValidatorContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _exchange, _zrxAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_exchange,\n+ _zrxAssetData\n+ ], base_contract_1.BaseContract._bigNumberToString), 2), _exchange = _a[0], _zrxAssetData = _a[1];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_exchange,\n+ _zrxAssetData\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"OrderValidator successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new OrderValidatorContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_exchange,\n+ _zrxAssetData\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return OrderValidatorContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.OrderValidatorContract = OrderValidatorContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=order_validator.js.map\n\\ No newline at end of file" + }, + { + "sha": "a02c58b10df8e996b67ef092b87770c9c0317092", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"order_validator.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/order_validator.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "2438f6cd1670ad5a67a6189d68a77347b142e9ac", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts", + "status": "added", + "additions": 83, + "deletions": 0, + "changes": 83, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,83 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type WETH9EventArgs = WETH9ApprovalEventArgs | WETH9TransferEventArgs | WETH9DepositEventArgs | WETH9WithdrawalEventArgs;\n+export declare enum WETH9Events {\n+ Approval = \"Approval\",\n+ Transfer = \"Transfer\",\n+ Deposit = \"Deposit\",\n+ Withdrawal = \"Withdrawal\"\n+}\n+export interface WETH9ApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export interface WETH9TransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface WETH9DepositEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _value: BigNumber;\n+}\n+export interface WETH9WithdrawalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _value: BigNumber;\n+}\n+export declare class WETH9Contract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(guy: string, wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(guy: string, wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(guy: string, wad: BigNumber): string;\n+ callAsync(guy: string, wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(src: string, dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(src: string, dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(src: string, dst: string, wad: BigNumber): string;\n+ callAsync(src: string, dst: string, wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ withdraw: {\n+ sendTransactionAsync(wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(wad: BigNumber): string;\n+ callAsync(wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ decimals: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(dst: string, wad: BigNumber): string;\n+ callAsync(dst: string, wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ deposit: {\n+ sendTransactionAsync(txData?: Partial): Promise;\n+ estimateGasAsync(txData?: Partial): Promise;\n+ getABIEncodedTransactionData(): string;\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=weth9.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "520ff691fd0ddc2c622cba31cf6861191e7cab06", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"weth9.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/weth9.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,cAAc,GACpB,sBAAsB,GACtB,sBAAsB,GACtB,qBAAqB,GACrB,wBAAwB,CAAC;AAE/B,oBAAY,WAAW;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,UAAU,eAAe;CAC5B;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,aAAc,SAAQ,YAAY;IACpC,IAAI;;MAyBT;IACK,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,QAAQ;;;;;MA2Eb;IACK,QAAQ;;MAyBb;IACK,SAAS;;MA2Bd;IACK,MAAM;;MAyBX;IACK,QAAQ;;;;;MAoFb;IACK,OAAO;;;;;MAkEZ;IACK,SAAS;;MA6Bd;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;WASL,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;gBAyBb,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "a340bf0a7ddef0667a58e500bd3e9ab1e6979155", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js", + "status": "added", + "additions": 682, + "deletions": 0, + "changes": 682, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,682 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var WETH9Events;\n+(function (WETH9Events) {\n+ WETH9Events[\"Approval\"] = \"Approval\";\n+ WETH9Events[\"Transfer\"] = \"Transfer\";\n+ WETH9Events[\"Deposit\"] = \"Deposit\";\n+ WETH9Events[\"Withdrawal\"] = \"Withdrawal\";\n+})(WETH9Events = exports.WETH9Events || (exports.WETH9Events = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var WETH9Contract = /** @class */ (function (_super) {\n+ __extends(WETH9Contract, _super);\n+ function WETH9Contract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'WETH9', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (guy, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, guy, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (guy, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (guy, wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (guy, wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (src, dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, src, dst, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (src, dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (src, dst, wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (src, dst, wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.withdraw = {\n+ sendTransactionAsync: function (wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.withdraw.estimateGasAsync.bind(self, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('withdraw(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.decimals = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('decimals()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('decimals()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, dst, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (dst, wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (dst, wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.deposit = {\n+ sendTransactionAsync: function (txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('deposit()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.deposit.estimateGasAsync.bind(self))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('deposit()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function () {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('deposit()', []);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('deposit()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('deposit()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (index_0, index_1, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [index_0,\n+ index_1\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ WETH9Contract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, WETH9Contract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ WETH9Contract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"WETH9 successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new WETH9Contract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return WETH9Contract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.WETH9Contract = WETH9Contract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=weth9.js.map\n\\ No newline at end of file" + }, + { + "sha": "03ea0f0acd458930b8fd0008c4b2324fc270fc3a", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"weth9.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/weth9.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uGAAuG;AACvG,oCAAoC;AACpC,mCAAmC;AACnC,mDAAiD;AAEjD,mCAA2E;AAE3E,iDAA+C;AAC/C,+BAAiC;AACjC,0BAA4B;AAS5B,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;IACrB,kCAAmB,CAAA;IACnB,wCAAyB,CAAA;AAC7B,CAAC,EALW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAKtB;AAyBD,0BAA0B;AAC1B,2CAA2C;AAC3C,sCAAsC;AACtC;IAAmC,iCAAY;IAqmB3C,uBAAY,GAAgB,EAAE,OAAe,EAAE,iBAAoC,EAAE,UAA4B;QAAjH,YACI,kBAAM,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAE9D;QAvmBM,UAAI,GAAG;YACJ,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gCACjC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gCAE9C,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,aAAO,GAAG;YACP,oBAAoB,EAA1B,UACI,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,GAAG;oCACxF,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAC9B,IAAI,EACJ,GAAG,EACH,GAAG,CACN,CACJ,EAAA;;gCAZK,kBAAkB,GAAG,SAY1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,GAAG;oCACxF,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,GAAW,EACX,GAAc;gBAEd,IAAM,IAAI,GAAG,IAA4B,CAAC;gBAC1C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,GAAG;oBACtG,GAAG;iBACF,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,GAAW,EACX,GAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,GAAG;oCACpF,GAAG;iCACF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;gCAEhE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,iBAAW,GAAG;YACX,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gCACxC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;gCAErD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,kBAAY,GAAG;YACZ,oBAAoB,EAA1B,UACI,GAAW,EACX,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,CAAC,GAAG;oCACrG,GAAG;oCACH,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CACnC,IAAI,EACJ,GAAG,EACH,GAAG,EACH,GAAG,CACN,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,GAAW,EACX,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,CAAC,GAAG;oCACrG,GAAG;oCACH,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,GAAW,EACX,GAAW,EACX,GAAc;gBAEd,IAAM,IAAI,GAAG,IAA4B,CAAC;gBAC1C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,CAAC,GAAG;oBACnH,GAAG;oBACH,GAAG;iBACF,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,GAAW,EACX,GAAW,EACX,GAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,CAAC,GAAG;oCACjG,GAAG;oCACH,GAAG;iCACF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,uCAAuC,CAAC,CAAC;gCAE7E,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,cAAQ,GAAG;YACR,oBAAoB,EAA1B,UACI,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,GAAG;iCAChF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAC/B,IAAI,EACJ,GAAG,CACN,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,GAAG;iCAChF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,GAAc;gBAEd,IAAM,IAAI,GAAG,IAA4B,CAAC;gBAC1C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,GAAG;iBAC9F,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,GAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,GAAG;iCAC5E,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;gCAEzD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,cAAQ,GAAG;YACR,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gCACrC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gCAElD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,eAAS,GAAG;YACT,SAAS,EAAf,UACI,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,CAAC,OAAO;iCACjF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;gCAE1D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,YAAM,GAAG;YACN,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gCACnC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gCAEhD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,cAAQ,GAAG;YACR,oBAAoB,EAA1B,UACI,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,GAAG;oCACzF,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAC/B,IAAI,EACJ,GAAG,EACH,GAAG,CACN,CACJ,EAAA;;gCAZK,kBAAkB,GAAG,SAY1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,GAAG;oCACzF,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,GAAW,EACX,GAAc;gBAEd,IAAM,IAAI,GAAG,IAA4B,CAAC;gBAC1C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,GAAG;oBACvG,GAAG;iBACF,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,GAAW,EACX,GAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,GAAG;oCACrF,GAAG;iCACF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;gCAEjE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,aAAO,GAAG;YACP,oBAAoB,EAA1B,UACI,MAAmC;gBAAnC,uBAAA,EAAA,WAAmC;;;;;;gCAE7B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gCACtC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAC9B,IAAI,CACP,CACJ,EAAA;;gCAVK,kBAAkB,GAAG,SAU1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gCACtC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B;gBAEI,IAAM,IAAI,GAAG,IAA4B,CAAC;gBAC1C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC/E,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gCACpC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gCAEjD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,eAAS,GAAG;YACT,SAAS,EAAf,UACI,OAAe,EACf,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,OAAO;oCAC1F,OAAO;iCACN,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;gCAElE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QA8CE,kBAAU,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;;IACnG,CAAC;IA9CmB,uCAAyB,GAA7C,UACI,QAAmD,EACnD,iBAAoC,EACpC,UAA2B;;;;gBAE3B,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACrE;gBACK,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;gBACxC,sBAAO,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAG,EAAC;;;KAC3E;IACmB,yBAAW,GAA/B,UACI,QAAgB,EAChB,GAAgB,EAChB,iBAAoC,EACpC,UAA2B;;;;;;wBAErB,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC/D,cAAc,GAAG,4BAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;wBAC1D,4BAAY,CAAC,sBAAsB,CACpC,cAAc,CAAC,MAAM,EACrB,EAAE,EACF,4BAAY,CAAC,kBAAkB,CAClC,CAAC;wBACI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACxC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;wBAClC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACzC,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAC;wBACnB,qBAAM,4BAAY,CAAC,2BAA2B,CACrE,EAAC,IAAI,EAAE,MAAM,EAAC,EACd,UAAU,EACV,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CACjD,EAAA;;wBAJK,kBAAkB,GAAG,SAI1B;wBACc,qBAAM,WAAW,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;wBAAnE,MAAM,GAAG,SAA0D;wBACzE,gBAAQ,CAAC,GAAG,CAAC,sBAAoB,MAAQ,CAAC,CAAC;wBACzB,qBAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAA;;wBAAlE,SAAS,GAAG,SAAsD;wBACxE,gBAAQ,CAAC,GAAG,CAAC,oCAAkC,SAAS,CAAC,eAAiB,CAAC,CAAC;wBACtE,gBAAgB,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,eAAyB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC3G,gBAAgB,CAAC,eAAe,GAAG,EAAE,CAAC;wBACtC,sBAAO,gBAAgB,EAAC;;;;KAC3B;IAKL,oBAAC;AAAD,CAAC,AAzmBD,CAAmC,4BAAY,GAymB9C,CAAC,qCAAqC;AAzmB1B,sCAAa;AA0mB1B,kCAAkC\"}\n\\ No newline at end of file" + }, + { + "sha": "845352b288ecf542ef193c8544e1c06a51c026d3", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts", + "status": "added", + "additions": 61, + "deletions": 0, + "changes": 61, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,61 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ZRXTokenEventArgs = ZRXTokenTransferEventArgs | ZRXTokenApprovalEventArgs;\n+export declare enum ZRXTokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\"\n+}\n+export interface ZRXTokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface ZRXTokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export declare class ZRXTokenContract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_spender: string, _value: BigNumber): string;\n+ callAsync(_spender: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string;\n+ callAsync(_from: string, _to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ decimals: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _value: BigNumber): string;\n+ callAsync(_to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(_owner: string, _spender: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=zrx_token.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "0c6d583f91c8aa44f81ae567df770df17d90308e", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"zrx_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/zrx_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,iBAAiB,GACvB,yBAAyB,GACzB,yBAAyB,CAAC;AAEhC,oBAAY,cAAc;IACtB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACxB;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,gBAAiB,SAAQ,YAAY;IACvC,IAAI;;MAyBT;IACK,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,QAAQ;;MAyBb;IACK,SAAS;;MA2Bd;IACK,MAAM;;MAyBX;IACK,QAAQ;;;;;MAoFb;IACK,SAAS;;MA6Bd;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,gBAAgB,CAAC;WASR,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,gBAAgB,CAAC;gBAyBhB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "3ff660ea5f8fc1ad8a9a83593c219fed8553b56d", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js", + "status": "added", + "additions": 534, + "deletions": 0, + "changes": 534, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,534 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ZRXTokenEvents;\n+(function (ZRXTokenEvents) {\n+ ZRXTokenEvents[\"Transfer\"] = \"Transfer\";\n+ ZRXTokenEvents[\"Approval\"] = \"Approval\";\n+})(ZRXTokenEvents = exports.ZRXTokenEvents || (exports.ZRXTokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ZRXTokenContract = /** @class */ (function (_super) {\n+ __extends(ZRXTokenContract, _super);\n+ function ZRXTokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ZRXToken', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _spender, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_spender, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_spender, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.decimals = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('decimals()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('decimals()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (_owner, _spender, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner,\n+ _spender\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ZRXTokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ZRXTokenContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ZRXTokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ZRXToken successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ZRXTokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ZRXTokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ZRXTokenContract = ZRXTokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=zrx_token.js.map\n\\ No newline at end of file" + }, + { + "sha": "f659acb28f52bf725aa3d9968e01203b72ce2298", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"zrx_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/zrx_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "9d24af4fe739f4ba39fc6d3a1a1832a8a937700e", + "filename": "packages/abi-gen-wrappers/lib/src/index.d.ts", + "status": "added", + "additions": 17, + "deletions": 0, + "changes": 17, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,17 @@\n+export * from './generated-wrappers/asset_proxy_owner';\n+export * from './generated-wrappers/dummy_erc20_token';\n+export * from './generated-wrappers/dummy_erc721_token';\n+export * from './generated-wrappers/dutch_auction';\n+export * from './generated-wrappers/erc20_proxy';\n+export * from './generated-wrappers/erc20_token';\n+export * from './generated-wrappers/erc721_proxy';\n+export * from './generated-wrappers/erc721_token';\n+export * from './generated-wrappers/exchange';\n+export * from './generated-wrappers/forwarder';\n+export * from './generated-wrappers/i_validator';\n+export * from './generated-wrappers/i_wallet';\n+export * from './generated-wrappers/multi_asset_proxy';\n+export * from './generated-wrappers/order_validator';\n+export * from './generated-wrappers/weth9';\n+export * from './generated-wrappers/zrx_token';\n+//# sourceMappingURL=index.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "9d3866457f84ba691c9e6f2a693a58e55d429c04", + "filename": "packages/abi-gen-wrappers/lib/src/index.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC\"}\n\\ No newline at end of file" + }, + { + "sha": "75d38839c9772efa56c66da7d719b22cbdc51f1c", + "filename": "packages/abi-gen-wrappers/lib/src/index.js", + "status": "added", + "additions": 22, + "deletions": 0, + "changes": 22, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,22 @@\n+\"use strict\";\n+function __export(m) {\n+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n+}\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+__export(require(\"./generated-wrappers/asset_proxy_owner\"));\n+__export(require(\"./generated-wrappers/dummy_erc20_token\"));\n+__export(require(\"./generated-wrappers/dummy_erc721_token\"));\n+__export(require(\"./generated-wrappers/dutch_auction\"));\n+__export(require(\"./generated-wrappers/erc20_proxy\"));\n+__export(require(\"./generated-wrappers/erc20_token\"));\n+__export(require(\"./generated-wrappers/erc721_proxy\"));\n+__export(require(\"./generated-wrappers/erc721_token\"));\n+__export(require(\"./generated-wrappers/exchange\"));\n+__export(require(\"./generated-wrappers/forwarder\"));\n+__export(require(\"./generated-wrappers/i_validator\"));\n+__export(require(\"./generated-wrappers/i_wallet\"));\n+__export(require(\"./generated-wrappers/multi_asset_proxy\"));\n+__export(require(\"./generated-wrappers/order_validator\"));\n+__export(require(\"./generated-wrappers/weth9\"));\n+__export(require(\"./generated-wrappers/zrx_token\"));\n+//# sourceMappingURL=index.js.map\n\\ No newline at end of file" + }, + { + "sha": "fd2261e4ef385cbdd4fec7f03c4a4dd24d17e895", + "filename": "packages/abi-gen-wrappers/lib/src/index.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\";;;;;AAAA,4DAAuD;AACvD,4DAAuD;AACvD,6DAAwD;AACxD,wDAAmD;AACnD,sDAAiD;AACjD,sDAAiD;AACjD,uDAAkD;AAClD,uDAAkD;AAClD,mDAA8C;AAC9C,oDAA+C;AAC/C,sDAAiD;AACjD,mDAA8C;AAC9C,4DAAuD;AACvD,0DAAqD;AACrD,gDAA2C;AAC3C,oDAA+C\"}\n\\ No newline at end of file" + }, + { + "sha": "f820c27860973d071098ec41cd38b994a41e8a7b", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -1489,7 +1489,7 @@ _secondsTimeLocked\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('AssetProxyOwner', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('AssetProxyOwner', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "88e2a4bb6d0181b268f67eb8bd243e528d164a9f", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -823,7 +823,7 @@ _totalSupply\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('DummyERC20Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('DummyERC20Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "fc01d4c8a0a3a3a2fcee606bd84310d27d635412", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -1001,7 +1001,7 @@ _symbol\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('DummyERC721Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('DummyERC721Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "36c9816ada0af8225e54c6f108e3c41c97169643", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -245,7 +245,7 @@ export class DutchAuctionContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('DutchAuction', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('DutchAuction', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "4bf1cc8240ce9fa9699e792150340f9a6edd4657", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -525,7 +525,7 @@ export class ERC20ProxyContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC20Proxy', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC20Proxy', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "737f204b7b6833b5168dadb6e5144bdd2aac1f74", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -428,7 +428,7 @@ export class ERC20TokenContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC20Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC20Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "a8ce0eebc947c8eba0a419dd81fd19b974fbf9da", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -525,7 +525,7 @@ export class ERC721ProxyContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC721Proxy', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC721Proxy', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "666479e1f1fa0d0227233b4a1ecce249b2a4db1a", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -663,7 +663,7 @@ export class ERC721TokenContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC721Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC721Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "986f02617395b05748fe8905620714cdb3dd5501", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -2274,7 +2274,7 @@ export class ExchangeContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('Exchange', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('Exchange', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "2e3ba60ffedb1a44fb762e6623dacbdaaa41ff0f", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts", + "status": "modified", + "additions": 4, + "deletions": 3, + "changes": 7, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -291,8 +291,9 @@ export class ForwarderContract extends BaseContract {\n feeRecipient\n ),\n );\n- const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);\n- return txHash;\n+ console.log(txDataWithDefaults)\n+ // const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);\n+ return '123';\n },\n async estimateGasAsync(\n orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,\n@@ -518,7 +519,7 @@ _wethAssetData\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('Forwarder', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('Forwarder', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "4cadd8ed25aab04ebc500cea4bd66b7aa63d7924", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -91,7 +91,7 @@ export class IValidatorContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('IValidator', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('IValidator', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "491028c2320619ecba35479fe3d0c3f2cbd7388e", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -89,7 +89,7 @@ export class IWalletContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('IWallet', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('IWallet', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "76d66120b8aa4c846ccf16fcac22040389e58ad0", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -664,7 +664,7 @@ export class MultiAssetProxyContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('MultiAssetProxy', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('MultiAssetProxy', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "5829909e3b1037c8382e6c96c9f8ba81aa09ff65", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -283,7 +283,7 @@ _zrxAssetData\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('OrderValidator', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('OrderValidator', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "0f528919f09bc6e947e298f6c8724da7adb628e3", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -663,7 +663,7 @@ export class WETH9Contract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('WETH9', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('WETH9', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "f89c246d656fd98fea4b9c074adcefb22fad012d", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -506,7 +506,7 @@ export class ZRXTokenContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ZRXToken', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ZRXToken', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "f10e9ca4639e6957f58f06a33f9ebad881405b15", + "filename": "packages/asset-buyer/lib/src/asset_buyer.d.ts", + "status": "added", + "additions": 109, + "deletions": 0, + "changes": 109, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,109 @@\n+import { SignedOrder } from '@0x/order-utils';\n+import { BigNumber } from '@0x/utils';\n+import { SupportedProvider, ZeroExProvider } from 'ethereum-types';\n+import { AssetBuyerOpts, BuyQuote, BuyQuoteExecutionOpts, BuyQuoteRequestOpts, LiquidityForAssetData, LiquidityRequestOpts, OrderProvider, OrdersAndFillableAmounts } from './types';\n+export declare class AssetBuyer {\n+ readonly provider: ZeroExProvider;\n+ readonly orderProvider: OrderProvider;\n+ readonly networkId: number;\n+ readonly orderRefreshIntervalMs: number;\n+ readonly expiryBufferSeconds: number;\n+ private readonly _contractWrappers;\n+ private readonly _ordersEntryMap;\n+ /**\n+ * Instantiates a new AssetBuyer instance given existing liquidity in the form of orders and feeOrders.\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orders A non-empty array of objects that conform to SignedOrder. All orders must have the same makerAssetData and takerAssetData (WETH).\n+ * @param feeOrders A array of objects that conform to SignedOrder. All orders must have the same makerAssetData (ZRX) and takerAssetData (WETH). Defaults to an empty array.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ static getAssetBuyerForProvidedOrders(supportedProvider: SupportedProvider, orders: SignedOrder[], options?: Partial): AssetBuyer;\n+ /**\n+ * Instantiates a new AssetBuyer instance given a [Standard Relayer API](https://github.com/0xProject/standard-relayer-api) endpoint\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param sraApiUrl The standard relayer API base HTTP url you would like to source orders from.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ static getAssetBuyerForStandardRelayerAPIUrl(supportedProvider: SupportedProvider, sraApiUrl: string, options?: Partial): AssetBuyer;\n+ /**\n+ * Instantiates a new AssetBuyer instance\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orderProvider An object that conforms to OrderProvider, see type for definition.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ constructor(supportedProvider: SupportedProvider, orderProvider: OrderProvider, options?: Partial);\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired assetData.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ getBuyQuoteAsync(assetData: string, assetBuyAmount: BigNumber, options?: Partial): Promise;\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired ERC20 token address.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param tokenAddress The ERC20 token address.\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ getBuyQuoteForERC20TokenAddressAsync(tokenAddress: string, assetBuyAmount: BigNumber, options?: Partial): Promise;\n+ /**\n+ * Returns information about available liquidity for an asset\n+ * Does not factor in slippage or fees\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to LiquidityForAssetData that satisfies the request. See type definition for more information.\n+ */\n+ getLiquidityForAssetDataAsync(assetData: string, options?: Partial): Promise;\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ executeBuyQuoteAsync(buyQuote: BuyQuote, options?: Partial): Promise;\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ mockExecuteBuyQuoteAsync(buyQuote: BuyQuote, options?: Partial): Promise;\n+ /**\n+ * Get the asset data of all assets that are purchaseable with ether token (wETH) in the order provider passed in at init.\n+ *\n+ * @return An array of asset data strings that can be purchased using wETH.\n+ */\n+ getAvailableAssetDatasAsync(): Promise;\n+ /**\n+ * Grab orders from the map, if there is a miss or it is time to refresh, fetch and process the orders\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param shouldForceOrderRefresh If set to true, new orders and state will be fetched instead of waiting for the next orderRefreshIntervalMs.\n+ */\n+ getOrdersAndFillableAmountsAsync(assetData: string, shouldForceOrderRefresh: boolean): Promise;\n+ /**\n+ * Get the assetData that represents the WETH token.\n+ * Will throw if WETH does not exist for the current network.\n+ */\n+ private _getEtherTokenAssetDataOrThrow;\n+ /**\n+ * Get the assetData that represents the ZRX token.\n+ * Will throw if ZRX does not exist for the current network.\n+ */\n+ private _getZrxTokenAssetDataOrThrow;\n+}\n+//# sourceMappingURL=asset_buyer.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "8f86a825a3c8892d4a94a67a2c8fd2b8b94ae0be", + "filename": "packages/asset-buyer/lib/src/asset_buyer.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_buyer.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/asset_buyer.ts\"],\"names\":[],\"mappings\":\"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAiB,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMnE,OAAO,EAEH,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EAC3B,MAAM,SAAS,CAAC;AAajB,qBAAa,UAAU;IACnB,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,sBAAsB,EAAE,MAAM,CAAC;IAC/C,SAAgB,mBAAmB,EAAE,MAAM,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAC9D;;;;;;;;OAQG;WACW,8BAA8B,CACxC,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,WAAW,EAAE,EACrB,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GACtC,UAAU;IAOb;;;;;;;OAOG;WACW,qCAAqC,CAC/C,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GACtC,UAAU;IAQb;;;;;;;OAOG;gBAEC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM;IAqBzC;;;;;;;;OAQG;IACU,gBAAgB,CACzB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,SAAS,EACzB,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC3C,OAAO,CAAC,QAAQ,CAAC;IAmCpB;;;;;;;;OAQG;IACU,oCAAoC,CAC7C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,SAAS,EACzB,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC3C,OAAO,CAAC,QAAQ,CAAC;IAOpB;;;;;;;OAOG;IACU,6BAA6B,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAC5C,OAAO,CAAC,qBAAqB,CAAC;IAwBjC;;;;;;OAMG;IACU,oBAAoB,CAC7B,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC7C,OAAO,CAAC,MAAM,CAAC;IA+Dd;;;;;;GAMD;IACU,wBAAwB,CACjC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC7C,OAAO,CAAC,MAAM,CAAC;IA+DlB;;;;OAIG;IACU,2BAA2B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7D;;;;OAIG;IACU,gCAAgC,CACzC,SAAS,EAAE,MAAM,EACjB,uBAAuB,EAAE,OAAO,GACjC,OAAO,CAAC,wBAAwB,CAAC;IA8CpC;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAGtC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;CAGvC\"}\n\\ No newline at end of file" + }, + { + "sha": "893ed51519527120840a98c0536996958c392d1c", + "filename": "packages/asset-buyer/lib/src/asset_buyer.js", + "status": "added", + "additions": 457, + "deletions": 0, + "changes": 457, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,457 @@\n+\"use strict\";\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var contract_wrappers_1 = require(\"@0x/contract-wrappers\");\n+var json_schemas_1 = require(\"@0x/json-schemas\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var _ = require(\"lodash\");\n+var constants_1 = require(\"./constants\");\n+var basic_order_provider_1 = require(\"./order_providers/basic_order_provider\");\n+var standard_relayer_api_order_provider_1 = require(\"./order_providers/standard_relayer_api_order_provider\");\n+var types_1 = require(\"./types\");\n+var assert_1 = require(\"./utils/assert\");\n+var asset_data_utils_1 = require(\"./utils/asset_data_utils\");\n+var buy_quote_calculator_1 = require(\"./utils/buy_quote_calculator\");\n+var calculate_liquidity_1 = require(\"./utils/calculate_liquidity\");\n+var order_provider_response_processor_1 = require(\"./utils/order_provider_response_processor\");\n+var AssetBuyer = /** @class */ (function () {\n+ /**\n+ * Instantiates a new AssetBuyer instance\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orderProvider An object that conforms to OrderProvider, see type for definition.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ function AssetBuyer(supportedProvider, orderProvider, options) {\n+ if (options === void 0) { options = {}; }\n+ // cache of orders along with the time last updated keyed by assetData\n+ this._ordersEntryMap = {};\n+ var _a = _.merge({}, constants_1.constants.DEFAULT_ASSET_BUYER_OPTS, options), networkId = _a.networkId, orderRefreshIntervalMs = _a.orderRefreshIntervalMs, expiryBufferSeconds = _a.expiryBufferSeconds;\n+ var provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ assert_1.assert.isValidOrderProvider('orderProvider', orderProvider);\n+ assert_1.assert.isNumber('networkId', networkId);\n+ assert_1.assert.isNumber('orderRefreshIntervalMs', orderRefreshIntervalMs);\n+ assert_1.assert.isNumber('expiryBufferSeconds', expiryBufferSeconds);\n+ this.provider = provider;\n+ this.orderProvider = orderProvider;\n+ this.networkId = networkId;\n+ this.orderRefreshIntervalMs = orderRefreshIntervalMs;\n+ this.expiryBufferSeconds = expiryBufferSeconds;\n+ this._contractWrappers = new contract_wrappers_1.ContractWrappers(this.provider, {\n+ networkId: networkId,\n+ });\n+ }\n+ /**\n+ * Instantiates a new AssetBuyer instance given existing liquidity in the form of orders and feeOrders.\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orders A non-empty array of objects that conform to SignedOrder. All orders must have the same makerAssetData and takerAssetData (WETH).\n+ * @param feeOrders A array of objects that conform to SignedOrder. All orders must have the same makerAssetData (ZRX) and takerAssetData (WETH). Defaults to an empty array.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ AssetBuyer.getAssetBuyerForProvidedOrders = function (supportedProvider, orders, options) {\n+ if (options === void 0) { options = {}; }\n+ assert_1.assert.doesConformToSchema('orders', orders, json_schemas_1.schemas.signedOrdersSchema);\n+ assert_1.assert.assert(orders.length !== 0, \"Expected orders to contain at least one order\");\n+ var orderProvider = new basic_order_provider_1.BasicOrderProvider(orders);\n+ var assetBuyer = new AssetBuyer(supportedProvider, orderProvider, options);\n+ return assetBuyer;\n+ };\n+ /**\n+ * Instantiates a new AssetBuyer instance given a [Standard Relayer API](https://github.com/0xProject/standard-relayer-api) endpoint\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param sraApiUrl The standard relayer API base HTTP url you would like to source orders from.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ AssetBuyer.getAssetBuyerForStandardRelayerAPIUrl = function (supportedProvider, sraApiUrl, options) {\n+ if (options === void 0) { options = {}; }\n+ var provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ assert_1.assert.isWebUri('sraApiUrl', sraApiUrl);\n+ var networkId = options.networkId || constants_1.constants.DEFAULT_ASSET_BUYER_OPTS.networkId;\n+ var orderProvider = new standard_relayer_api_order_provider_1.StandardRelayerAPIOrderProvider(sraApiUrl, networkId);\n+ var assetBuyer = new AssetBuyer(provider, orderProvider, options);\n+ return assetBuyer;\n+ };\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired assetData.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ AssetBuyer.prototype.getBuyQuoteAsync = function (assetData, assetBuyAmount, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, feePercentage, shouldForceOrderRefresh, slippagePercentage, zrxTokenAssetData, isMakerAssetZrxToken, _b, ordersAndFillableAmounts, feeOrdersAndFillableAmounts, buyQuote;\n+ return __generator(this, function (_c) {\n+ switch (_c.label) {\n+ case 0:\n+ _a = _.merge({}, constants_1.constants.DEFAULT_BUY_QUOTE_REQUEST_OPTS, options), feePercentage = _a.feePercentage, shouldForceOrderRefresh = _a.shouldForceOrderRefresh, slippagePercentage = _a.slippagePercentage;\n+ assert_1.assert.isString('assetData', assetData);\n+ assert_1.assert.isBigNumber('assetBuyAmount', assetBuyAmount);\n+ assert_1.assert.isValidPercentage('feePercentage', feePercentage);\n+ assert_1.assert.isBoolean('shouldForceOrderRefresh', shouldForceOrderRefresh);\n+ assert_1.assert.isNumber('slippagePercentage', slippagePercentage);\n+ zrxTokenAssetData = this._getZrxTokenAssetDataOrThrow();\n+ isMakerAssetZrxToken = assetData === zrxTokenAssetData;\n+ return [4 /*yield*/, Promise.all([\n+ this.getOrdersAndFillableAmountsAsync(assetData, shouldForceOrderRefresh),\n+ isMakerAssetZrxToken\n+ ? Promise.resolve(constants_1.constants.EMPTY_ORDERS_AND_FILLABLE_AMOUNTS)\n+ : this.getOrdersAndFillableAmountsAsync(zrxTokenAssetData, shouldForceOrderRefresh),\n+ shouldForceOrderRefresh,\n+ ])];\n+ case 1:\n+ _b = __read.apply(void 0, [_c.sent(), 2]), ordersAndFillableAmounts = _b[0], feeOrdersAndFillableAmounts = _b[1];\n+ if (ordersAndFillableAmounts.orders.length === 0) {\n+ throw new Error(types_1.AssetBuyerError.AssetUnavailable + \": For assetData \" + assetData);\n+ }\n+ buyQuote = buy_quote_calculator_1.buyQuoteCalculator.calculate(ordersAndFillableAmounts, feeOrdersAndFillableAmounts, assetBuyAmount, feePercentage, slippagePercentage, isMakerAssetZrxToken);\n+ return [2 /*return*/, buyQuote];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired ERC20 token address.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param tokenAddress The ERC20 token address.\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ AssetBuyer.prototype.getBuyQuoteForERC20TokenAddressAsync = function (tokenAddress, assetBuyAmount, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var assetData, buyQuote;\n+ return __generator(this, function (_a) {\n+ assert_1.assert.isETHAddressHex('tokenAddress', tokenAddress);\n+ assert_1.assert.isBigNumber('assetBuyAmount', assetBuyAmount);\n+ assetData = asset_data_utils_1.assetDataUtils.encodeERC20AssetData(tokenAddress);\n+ buyQuote = this.getBuyQuoteAsync(assetData, assetBuyAmount, options);\n+ return [2 /*return*/, buyQuote];\n+ });\n+ });\n+ };\n+ /**\n+ * Returns information about available liquidity for an asset\n+ * Does not factor in slippage or fees\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to LiquidityForAssetData that satisfies the request. See type definition for more information.\n+ */\n+ AssetBuyer.prototype.getLiquidityForAssetDataAsync = function (assetData, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var shouldForceOrderRefresh, assetPairs, etherTokenAssetData, ordersAndFillableAmounts;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ shouldForceOrderRefresh = options.shouldForceOrderRefresh !== undefined ? options.shouldForceOrderRefresh : false;\n+ assert_1.assert.isString('assetData', assetData);\n+ asset_data_utils_1.assetDataUtils.decodeAssetDataOrThrow(assetData);\n+ assert_1.assert.isBoolean('options.shouldForceOrderRefresh', shouldForceOrderRefresh);\n+ return [4 /*yield*/, this.orderProvider.getAvailableMakerAssetDatasAsync(assetData)];\n+ case 1:\n+ assetPairs = _a.sent();\n+ etherTokenAssetData = this._getEtherTokenAssetDataOrThrow();\n+ if (!assetPairs.includes(etherTokenAssetData)) {\n+ return [2 /*return*/, {\n+ tokensAvailableInBaseUnits: new utils_1.BigNumber(0),\n+ ethValueAvailableInWei: new utils_1.BigNumber(0),\n+ }];\n+ }\n+ return [4 /*yield*/, this.getOrdersAndFillableAmountsAsync(assetData, shouldForceOrderRefresh)];\n+ case 2:\n+ ordersAndFillableAmounts = _a.sent();\n+ return [2 /*return*/, calculate_liquidity_1.calculateLiquidity(ordersAndFillableAmounts)];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ AssetBuyer.prototype.executeBuyQuoteAsync = function (buyQuote, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, ethAmount, takerAddress, feeRecipient, gasLimit, gasPrice, orders, feeOrders, feePercentage, assetBuyAmount, worstCaseQuoteInfo, finalTakerAddress, web3Wrapper, availableAddresses, firstAvailableAddress, txHash, err_1;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ _a = _.merge({}, constants_1.constants.DEFAULT_BUY_QUOTE_EXECUTION_OPTS, options), ethAmount = _a.ethAmount, takerAddress = _a.takerAddress, feeRecipient = _a.feeRecipient, gasLimit = _a.gasLimit, gasPrice = _a.gasPrice;\n+ assert_1.assert.isValidBuyQuote('buyQuote', buyQuote);\n+ if (!_.isUndefined(ethAmount)) {\n+ assert_1.assert.isBigNumber('ethAmount', ethAmount);\n+ }\n+ if (!_.isUndefined(takerAddress)) {\n+ assert_1.assert.isETHAddressHex('takerAddress', takerAddress);\n+ }\n+ assert_1.assert.isETHAddressHex('feeRecipient', feeRecipient);\n+ if (!_.isUndefined(gasLimit)) {\n+ assert_1.assert.isNumber('gasLimit', gasLimit);\n+ }\n+ if (!_.isUndefined(gasPrice)) {\n+ assert_1.assert.isBigNumber('gasPrice', gasPrice);\n+ }\n+ orders = buyQuote.orders, feeOrders = buyQuote.feeOrders, feePercentage = buyQuote.feePercentage, assetBuyAmount = buyQuote.assetBuyAmount, worstCaseQuoteInfo = buyQuote.worstCaseQuoteInfo;\n+ if (!!_.isUndefined(takerAddress)) return [3 /*break*/, 1];\n+ finalTakerAddress = takerAddress;\n+ return [3 /*break*/, 3];\n+ case 1:\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(this.provider);\n+ return [4 /*yield*/, web3Wrapper.getAvailableAddressesAsync()];\n+ case 2:\n+ availableAddresses = _b.sent();\n+ firstAvailableAddress = _.head(availableAddresses);\n+ if (!_.isUndefined(firstAvailableAddress)) {\n+ finalTakerAddress = firstAvailableAddress;\n+ }\n+ else {\n+ throw new Error(types_1.AssetBuyerError.NoAddressAvailable);\n+ }\n+ _b.label = 3;\n+ case 3:\n+ _b.trys.push([3, 5, , 6]);\n+ return [4 /*yield*/, this._contractWrappers.forwarder.marketBuyOrdersWithEthAsync(orders, assetBuyAmount, finalTakerAddress, ethAmount || worstCaseQuoteInfo.totalEthAmount, feeOrders, feePercentage, feeRecipient, {\n+ gasLimit: gasLimit,\n+ gasPrice: gasPrice,\n+ shouldValidate: true,\n+ })];\n+ case 4:\n+ txHash = _b.sent();\n+ return [2 /*return*/, txHash];\n+ case 5:\n+ err_1 = _b.sent();\n+ if (_.includes(err_1.message, contract_wrappers_1.ContractWrappersError.SignatureRequestDenied)) {\n+ throw new Error(types_1.AssetBuyerError.SignatureRequestDenied);\n+ }\n+ else if (_.includes(err_1.message, contract_wrappers_1.ForwarderWrapperError.CompleteFillFailed)) {\n+ throw new Error(types_1.AssetBuyerError.TransactionValueTooLow);\n+ }\n+ else {\n+ throw err_1;\n+ }\n+ return [3 /*break*/, 6];\n+ case 6: return [2 /*return*/];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ AssetBuyer.prototype.mockExecuteBuyQuoteAsync = function (buyQuote, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, ethAmount, takerAddress, feeRecipient, gasLimit, gasPrice, orders, feeOrders, feePercentage, assetBuyAmount, worstCaseQuoteInfo, finalTakerAddress, web3Wrapper, availableAddresses, firstAvailableAddress, txHash, err_2;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ _a = _.merge({}, constants_1.constants.DEFAULT_BUY_QUOTE_EXECUTION_OPTS, options), ethAmount = _a.ethAmount, takerAddress = _a.takerAddress, feeRecipient = _a.feeRecipient, gasLimit = _a.gasLimit, gasPrice = _a.gasPrice;\n+ assert_1.assert.isValidBuyQuote('buyQuote', buyQuote);\n+ if (!_.isUndefined(ethAmount)) {\n+ assert_1.assert.isBigNumber('ethAmount', ethAmount);\n+ }\n+ if (!_.isUndefined(takerAddress)) {\n+ assert_1.assert.isETHAddressHex('takerAddress', takerAddress);\n+ }\n+ assert_1.assert.isETHAddressHex('feeRecipient', feeRecipient);\n+ if (!_.isUndefined(gasLimit)) {\n+ assert_1.assert.isNumber('gasLimit', gasLimit);\n+ }\n+ if (!_.isUndefined(gasPrice)) {\n+ assert_1.assert.isBigNumber('gasPrice', gasPrice);\n+ }\n+ orders = buyQuote.orders, feeOrders = buyQuote.feeOrders, feePercentage = buyQuote.feePercentage, assetBuyAmount = buyQuote.assetBuyAmount, worstCaseQuoteInfo = buyQuote.worstCaseQuoteInfo;\n+ if (!!_.isUndefined(takerAddress)) return [3 /*break*/, 1];\n+ finalTakerAddress = takerAddress;\n+ return [3 /*break*/, 3];\n+ case 1:\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(this.provider);\n+ return [4 /*yield*/, web3Wrapper.getAvailableAddressesAsync()];\n+ case 2:\n+ availableAddresses = _b.sent();\n+ firstAvailableAddress = _.head(availableAddresses);\n+ if (!_.isUndefined(firstAvailableAddress)) {\n+ finalTakerAddress = firstAvailableAddress;\n+ }\n+ else {\n+ throw new Error(types_1.AssetBuyerError.NoAddressAvailable);\n+ }\n+ _b.label = 3;\n+ case 3:\n+ _b.trys.push([3, 5, , 6]);\n+ return [4 /*yield*/, this._contractWrappers.forwarder.marketBuyOrdersWithEthAsync(orders, assetBuyAmount, finalTakerAddress, ethAmount || worstCaseQuoteInfo.totalEthAmount, feeOrders, feePercentage, feeRecipient, {\n+ gasLimit: gasLimit,\n+ gasPrice: gasPrice,\n+ shouldValidate: true,\n+ })];\n+ case 4:\n+ txHash = _b.sent();\n+ return [2 /*return*/, txHash];\n+ case 5:\n+ err_2 = _b.sent();\n+ if (_.includes(err_2.message, contract_wrappers_1.ContractWrappersError.SignatureRequestDenied)) {\n+ throw new Error(types_1.AssetBuyerError.SignatureRequestDenied);\n+ }\n+ else if (_.includes(err_2.message, contract_wrappers_1.ForwarderWrapperError.CompleteFillFailed)) {\n+ throw new Error(types_1.AssetBuyerError.TransactionValueTooLow);\n+ }\n+ else {\n+ throw err_2;\n+ }\n+ return [3 /*break*/, 6];\n+ case 6: return [2 /*return*/];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Get the asset data of all assets that are purchaseable with ether token (wETH) in the order provider passed in at init.\n+ *\n+ * @return An array of asset data strings that can be purchased using wETH.\n+ */\n+ AssetBuyer.prototype.getAvailableAssetDatasAsync = function () {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var etherTokenAssetData;\n+ return __generator(this, function (_a) {\n+ etherTokenAssetData = this._getEtherTokenAssetDataOrThrow();\n+ return [2 /*return*/, this.orderProvider.getAvailableMakerAssetDatasAsync(etherTokenAssetData)];\n+ });\n+ });\n+ };\n+ /**\n+ * Grab orders from the map, if there is a miss or it is time to refresh, fetch and process the orders\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param shouldForceOrderRefresh If set to true, new orders and state will be fetched instead of waiting for the next orderRefreshIntervalMs.\n+ */\n+ AssetBuyer.prototype.getOrdersAndFillableAmountsAsync = function (assetData, shouldForceOrderRefresh) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var ordersEntryIfExists, shouldRefresh, result, etherTokenAssetData, zrxTokenAssetData, orderProviderRequest, request, response, isMakerAssetZrxToken, ordersAndFillableAmounts, lastRefreshTime, updatedOrdersEntry;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ ordersEntryIfExists = this._ordersEntryMap[assetData];\n+ shouldRefresh = _.isUndefined(ordersEntryIfExists) ||\n+ shouldForceOrderRefresh ||\n+ // tslint:disable:restrict-plus-operands\n+ ordersEntryIfExists.lastRefreshTime + this.orderRefreshIntervalMs < Date.now();\n+ if (!shouldRefresh) {\n+ result = ordersEntryIfExists.ordersAndFillableAmounts;\n+ return [2 /*return*/, result];\n+ }\n+ etherTokenAssetData = this._getEtherTokenAssetDataOrThrow();\n+ zrxTokenAssetData = this._getZrxTokenAssetDataOrThrow();\n+ orderProviderRequest = {\n+ makerAssetData: assetData,\n+ takerAssetData: etherTokenAssetData,\n+ networkId: this.networkId,\n+ };\n+ request = orderProviderRequest;\n+ return [4 /*yield*/, this.orderProvider.getOrdersAsync(request)];\n+ case 1:\n+ response = _a.sent();\n+ // since the order provider is an injected dependency, validate that it respects the API\n+ // ie. it should only return maker/taker assetDatas that are specified\n+ order_provider_response_processor_1.orderProviderResponseProcessor.throwIfInvalidResponse(response, request);\n+ isMakerAssetZrxToken = assetData === zrxTokenAssetData;\n+ return [4 /*yield*/, order_provider_response_processor_1.orderProviderResponseProcessor.processAsync(response, isMakerAssetZrxToken, this.expiryBufferSeconds, this._contractWrappers.orderValidator)];\n+ case 2:\n+ ordersAndFillableAmounts = _a.sent();\n+ lastRefreshTime = Date.now();\n+ updatedOrdersEntry = {\n+ ordersAndFillableAmounts: ordersAndFillableAmounts,\n+ lastRefreshTime: lastRefreshTime,\n+ };\n+ this._ordersEntryMap[assetData] = updatedOrdersEntry;\n+ return [2 /*return*/, ordersAndFillableAmounts];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Get the assetData that represents the WETH token.\n+ * Will throw if WETH does not exist for the current network.\n+ */\n+ AssetBuyer.prototype._getEtherTokenAssetDataOrThrow = function () {\n+ return asset_data_utils_1.assetDataUtils.getEtherTokenAssetData(this._contractWrappers);\n+ };\n+ /**\n+ * Get the assetData that represents the ZRX token.\n+ * Will throw if ZRX does not exist for the current network.\n+ */\n+ AssetBuyer.prototype._getZrxTokenAssetDataOrThrow = function () {\n+ return this._contractWrappers.exchange.getZRXAssetData();\n+ };\n+ return AssetBuyer;\n+}());\n+exports.AssetBuyer = AssetBuyer;\n+//# sourceMappingURL=asset_buyer.js.map\n\\ No newline at end of file" + }, + { + "sha": "742913b367caaccaee92fc7d80ad65da18e73ac1", + "filename": "packages/asset-buyer/lib/src/asset_buyer.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_buyer.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/asset_buyer.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "e4588ea81af49ceeb931f70b899ba4c94c6d20c8", + "filename": "packages/asset-buyer/lib/src/constants.d.ts", + "status": "added", + "additions": 13, + "deletions": 0, + "changes": 13, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,13 @@\n+import { BigNumber } from '@0x/utils';\n+import { AssetBuyerOpts, BuyQuoteExecutionOpts, BuyQuoteRequestOpts, OrdersAndFillableAmounts } from './types';\n+export declare const constants: {\n+ ZERO_AMOUNT: BigNumber;\n+ NULL_ADDRESS: string;\n+ MAINNET_NETWORK_ID: number;\n+ ETHER_TOKEN_DECIMALS: number;\n+ DEFAULT_ASSET_BUYER_OPTS: AssetBuyerOpts;\n+ DEFAULT_BUY_QUOTE_EXECUTION_OPTS: BuyQuoteExecutionOpts;\n+ DEFAULT_BUY_QUOTE_REQUEST_OPTS: BuyQuoteRequestOpts;\n+ EMPTY_ORDERS_AND_FILLABLE_AMOUNTS: OrdersAndFillableAmounts;\n+};\n+//# sourceMappingURL=constants.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "6a4029108344addb830bed04bb5d18e1fa61b65a", + "filename": "packages/asset-buyer/lib/src/constants.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"constants.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/constants.ts\"],\"names\":[],\"mappings\":\"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AA2B/G,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC\"}\n\\ No newline at end of file" + }, + { + "sha": "dce1dfec8ecd239e2d819a0a63d811bc4069e917", + "filename": "packages/asset-buyer/lib/src/constants.js", + "status": "added", + "additions": 34, + "deletions": 0, + "changes": 34, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,34 @@\n+\"use strict\";\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var utils_1 = require(\"@0x/utils\");\n+var NULL_ADDRESS = '0x0000000000000000000000000000000000000000';\n+var MAINNET_NETWORK_ID = 1;\n+var DEFAULT_ASSET_BUYER_OPTS = {\n+ networkId: MAINNET_NETWORK_ID,\n+ orderRefreshIntervalMs: 10000,\n+ expiryBufferSeconds: 120,\n+};\n+var DEFAULT_BUY_QUOTE_REQUEST_OPTS = {\n+ feePercentage: 0,\n+ shouldForceOrderRefresh: false,\n+ slippagePercentage: 0.2,\n+};\n+// Other default values are dynamically determined\n+var DEFAULT_BUY_QUOTE_EXECUTION_OPTS = {\n+ feeRecipient: NULL_ADDRESS,\n+};\n+var EMPTY_ORDERS_AND_FILLABLE_AMOUNTS = {\n+ orders: [],\n+ remainingFillableMakerAssetAmounts: [],\n+};\n+exports.constants = {\n+ ZERO_AMOUNT: new utils_1.BigNumber(0),\n+ NULL_ADDRESS: NULL_ADDRESS,\n+ MAINNET_NETWORK_ID: MAINNET_NETWORK_ID,\n+ ETHER_TOKEN_DECIMALS: 18,\n+ DEFAULT_ASSET_BUYER_OPTS: DEFAULT_ASSET_BUYER_OPTS,\n+ DEFAULT_BUY_QUOTE_EXECUTION_OPTS: DEFAULT_BUY_QUOTE_EXECUTION_OPTS,\n+ DEFAULT_BUY_QUOTE_REQUEST_OPTS: DEFAULT_BUY_QUOTE_REQUEST_OPTS,\n+ EMPTY_ORDERS_AND_FILLABLE_AMOUNTS: EMPTY_ORDERS_AND_FILLABLE_AMOUNTS,\n+};\n+//# sourceMappingURL=constants.js.map\n\\ No newline at end of file" + }, + { + "sha": "ffb95571f7f7b6fe7e86b3bccb5fa0c52ed50d4a", + "filename": "packages/asset-buyer/lib/src/constants.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"constants.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/constants.ts\"],\"names\":[],\"mappings\":\";;AACA,mCAAsC;AAItC,IAAM,YAAY,GAAG,4CAA4C,CAAC;AAClE,IAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,IAAM,wBAAwB,GAAmB;IAC7C,SAAS,EAAE,kBAAkB;IAC7B,sBAAsB,EAAE,KAAK;IAC7B,mBAAmB,EAAE,GAAG;CAC3B,CAAC;AAEF,IAAM,8BAA8B,GAAwB;IACxD,aAAa,EAAE,CAAC;IAChB,uBAAuB,EAAE,KAAK;IAC9B,kBAAkB,EAAE,GAAG;CAC1B,CAAC;AAEF,kDAAkD;AAClD,IAAM,gCAAgC,GAA0B;IAC5D,YAAY,EAAE,YAAY;CAC7B,CAAC;AAEF,IAAM,iCAAiC,GAA6B;IAChE,MAAM,EAAE,EAAmB;IAC3B,kCAAkC,EAAE,EAAiB;CACxD,CAAC;AAEW,QAAA,SAAS,GAAG;IACrB,WAAW,EAAE,IAAI,iBAAS,CAAC,CAAC,CAAC;IAC7B,YAAY,cAAA;IACZ,kBAAkB,oBAAA;IAClB,oBAAoB,EAAE,EAAE;IACxB,wBAAwB,0BAAA;IACxB,gCAAgC,kCAAA;IAChC,8BAA8B,gCAAA;IAC9B,iCAAiC,mCAAA;CACpC,CAAC\"}\n\\ No newline at end of file" + }, + { + "sha": "702e2feedefa4fc878244f025e622785db280f53", + "filename": "packages/asset-buyer/lib/src/errors.d.ts", + "status": "added", + "additions": 15, + "deletions": 0, + "changes": 15, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,15 @@\n+import { BigNumber } from '@0x/utils';\n+/**\n+ * Error class representing insufficient asset liquidity\n+ */\n+export declare class InsufficientAssetLiquidityError extends Error {\n+ /**\n+ * The amount availabe to fill (in base units) factoring in slippage.\n+ */\n+ amountAvailableToFill: BigNumber;\n+ /**\n+ * @param amountAvailableToFill The amount availabe to fill (in base units) factoring in slippage\n+ */\n+ constructor(amountAvailableToFill: BigNumber);\n+}\n+//# sourceMappingURL=errors.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "989a45d69dcf808034909d7efbaccfd34ac6147a", + "filename": "packages/asset-buyer/lib/src/errors.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"errors.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/errors.ts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,KAAK;IACtD;;OAEG;IACI,qBAAqB,EAAE,SAAS,CAAC;IACxC;;OAEG;gBACS,qBAAqB,EAAE,SAAS;CAM/C\"}\n\\ No newline at end of file" + }, + { + "sha": "d8770eed54098cdf167289ac8ec52686b84745e4", + "filename": "packages/asset-buyer/lib/src/errors.js", + "status": "added", + "additions": 35, + "deletions": 0, + "changes": 35, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,35 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var types_1 = require(\"./types\");\n+/**\n+ * Error class representing insufficient asset liquidity\n+ */\n+var InsufficientAssetLiquidityError = /** @class */ (function (_super) {\n+ __extends(InsufficientAssetLiquidityError, _super);\n+ /**\n+ * @param amountAvailableToFill The amount availabe to fill (in base units) factoring in slippage\n+ */\n+ function InsufficientAssetLiquidityError(amountAvailableToFill) {\n+ var _this = _super.call(this, types_1.AssetBuyerError.InsufficientAssetLiquidity) || this;\n+ _this.amountAvailableToFill = amountAvailableToFill;\n+ // Setting prototype so instanceof works. See https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n+ Object.setPrototypeOf(_this, InsufficientAssetLiquidityError.prototype);\n+ return _this;\n+ }\n+ return InsufficientAssetLiquidityError;\n+}(Error));\n+exports.InsufficientAssetLiquidityError = InsufficientAssetLiquidityError;\n+//# sourceMappingURL=errors.js.map\n\\ No newline at end of file" + }, + { + "sha": "3f7f95062b678a1fe860bb6f029f32693ca22a9c", + "filename": "packages/asset-buyer/lib/src/errors.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"errors.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/errors.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;AAEA,iCAA0C;AAE1C;;GAEG;AACH;IAAqD,mDAAK;IAKtD;;OAEG;IACH,yCAAY,qBAAgC;QAA5C,YACI,kBAAM,uBAAe,CAAC,0BAA0B,CAAC,SAIpD;QAHG,KAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,4KAA4K;QAC5K,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,+BAA+B,CAAC,SAAS,CAAC,CAAC;;IAC3E,CAAC;IACL,sCAAC;AAAD,CAAC,AAdD,CAAqD,KAAK,GAczD;AAdY,0EAA+B\"}\n\\ No newline at end of file" + }, + { + "sha": "fd537b9d74670f933de0c22f588573630f3d7842", + "filename": "packages/asset-buyer/lib/src/index.d.ts", + "status": "added", + "additions": 9, + "deletions": 0, + "changes": 9, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,9 @@\n+export { JSONRPCRequestPayload, JSONRPCResponsePayload, JSONRPCResponseError, JSONRPCErrorCallback, SupportedProvider, Web3JsProvider, GanacheProvider, EIP1193Provider, ZeroExProvider, EIP1193Event, Web3JsV1Provider, Web3JsV2Provider, Web3JsV3Provider, } from 'ethereum-types';\n+export { SignedOrder } from '@0x/types';\n+export { BigNumber } from '@0x/utils';\n+export { AssetBuyer } from './asset_buyer';\n+export { InsufficientAssetLiquidityError } from './errors';\n+export { BasicOrderProvider } from './order_providers/basic_order_provider';\n+export { StandardRelayerAPIOrderProvider } from './order_providers/standard_relayer_api_order_provider';\n+export { AssetBuyerError, AssetBuyerOpts, BuyQuote, BuyQuoteExecutionOpts, BuyQuoteInfo, BuyQuoteRequestOpts, LiquidityForAssetData, LiquidityRequestOpts, OrdersAndFillableAmounts, OrderProvider, OrderProviderRequest, OrderProviderResponse, SignedOrderWithRemainingFillableMakerAssetAmount, } from './types';\n+//# sourceMappingURL=index.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "eda1c7bf4e12509209f4091ae21cf769a74cb26f", + "filename": "packages/asset-buyer/lib/src/index.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EACH,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,uDAAuD,CAAC;AACxG,OAAO,EACH,eAAe,EACf,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,gDAAgD,GACnD,MAAM,SAAS,CAAC\"}\n\\ No newline at end of file" + }, + { + "sha": "bb309f351bac037f15c8e124c492c102d4b8597e", + "filename": "packages/asset-buyer/lib/src/index.js", + "status": "added", + "additions": 15, + "deletions": 0, + "changes": 15, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,15 @@\n+\"use strict\";\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var utils_1 = require(\"@0x/utils\");\n+exports.BigNumber = utils_1.BigNumber;\n+var asset_buyer_1 = require(\"./asset_buyer\");\n+exports.AssetBuyer = asset_buyer_1.AssetBuyer;\n+var errors_1 = require(\"./errors\");\n+exports.InsufficientAssetLiquidityError = errors_1.InsufficientAssetLiquidityError;\n+var basic_order_provider_1 = require(\"./order_providers/basic_order_provider\");\n+exports.BasicOrderProvider = basic_order_provider_1.BasicOrderProvider;\n+var standard_relayer_api_order_provider_1 = require(\"./order_providers/standard_relayer_api_order_provider\");\n+exports.StandardRelayerAPIOrderProvider = standard_relayer_api_order_provider_1.StandardRelayerAPIOrderProvider;\n+var types_1 = require(\"./types\");\n+exports.AssetBuyerError = types_1.AssetBuyerError;\n+//# sourceMappingURL=index.js.map\n\\ No newline at end of file" + }, + { + "sha": "f5f125c88f2b3741c3b3bed1f4c2e575cf1bbcac", + "filename": "packages/asset-buyer/lib/src/index.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\";;AAgBA,mCAAsC;AAA7B,4BAAA,SAAS,CAAA;AAElB,6CAA2C;AAAlC,mCAAA,UAAU,CAAA;AACnB,mCAA2D;AAAlD,mDAAA,+BAA+B,CAAA;AACxC,+EAA4E;AAAnE,oDAAA,kBAAkB,CAAA;AAC3B,6GAAwG;AAA/F,gFAAA,+BAA+B,CAAA;AACxC,iCAciB;AAbb,kCAAA,eAAe,CAAA\"}\n\\ No newline at end of file" + }, + { + "sha": "b3abcb718bf180c0daa2902b9d849750e76caf98", + "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts", + "status": "added", + "additions": 24, + "deletions": 0, + "changes": 24, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,24 @@\n+import { SignedOrder } from '@0x/types';\n+import { OrderProvider, OrderProviderRequest, OrderProviderResponse } from '../types';\n+export declare class BasicOrderProvider implements OrderProvider {\n+ readonly orders: SignedOrder[];\n+ /**\n+ * Instantiates a new BasicOrderProvider instance\n+ * @param orders An array of objects that conform to SignedOrder to fetch from.\n+ * @return An instance of BasicOrderProvider\n+ */\n+ constructor(orders: SignedOrder[]);\n+ /**\n+ * Given an object that conforms to OrderFetcherRequest, return the corresponding OrderProviderResponse that satisfies the request.\n+ * @param orderProviderRequest An instance of OrderFetcherRequest. See type for more information.\n+ * @return An instance of OrderProviderResponse. See type for more information.\n+ */\n+ getOrdersAsync(orderProviderRequest: OrderProviderRequest): Promise;\n+ /**\n+ * Given a taker asset data string, return all availabled paired maker asset data strings.\n+ * @param takerAssetData A string representing the taker asset data.\n+ * @return An array of asset data strings that can be purchased using takerAssetData.\n+ */\n+ getAvailableMakerAssetDatasAsync(takerAssetData: string): Promise;\n+}\n+//# sourceMappingURL=basic_order_provider.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "f182aedec9bd10a31e4adfd630c4af380744ffa4", + "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"basic_order_provider.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/order_providers/basic_order_provider.ts\"],\"names\":[],\"mappings\":\"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtF,qBAAa,kBAAmB,YAAW,aAAa;IACpD,SAAgB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtC;;;;OAIG;gBACS,MAAM,EAAE,WAAW,EAAE;IAIjC;;;;OAIG;IACU,cAAc,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQvG;;;;OAIG;IACU,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAI3F\"}\n\\ No newline at end of file" + }, + { + "sha": "47d81d1cbd0dbb037e555e709df5004993b6fec2", + "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.js", + "status": "added", + "additions": 86, + "deletions": 0, + "changes": 86, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,86 @@\n+\"use strict\";\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var json_schemas_1 = require(\"@0x/json-schemas\");\n+var _ = require(\"lodash\");\n+var assert_1 = require(\"../utils/assert\");\n+var BasicOrderProvider = /** @class */ (function () {\n+ /**\n+ * Instantiates a new BasicOrderProvider instance\n+ * @param orders An array of objects that conform to SignedOrder to fetch from.\n+ * @return An instance of BasicOrderProvider\n+ */\n+ function BasicOrderProvider(orders) {\n+ assert_1.assert.doesConformToSchema('orders', orders, json_schemas_1.schemas.signedOrdersSchema);\n+ this.orders = orders;\n+ }\n+ /**\n+ * Given an object that conforms to OrderFetcherRequest, return the corresponding OrderProviderResponse that satisfies the request.\n+ * @param orderProviderRequest An instance of OrderFetcherRequest. See type for more information.\n+ * @return An instance of OrderProviderResponse. See type for more information.\n+ */\n+ BasicOrderProvider.prototype.getOrdersAsync = function (orderProviderRequest) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var makerAssetData, takerAssetData, orders;\n+ return __generator(this, function (_a) {\n+ assert_1.assert.isValidOrderProviderRequest('orderProviderRequest', orderProviderRequest);\n+ makerAssetData = orderProviderRequest.makerAssetData, takerAssetData = orderProviderRequest.takerAssetData;\n+ orders = _.filter(this.orders, function (order) {\n+ return order.makerAssetData === makerAssetData && order.takerAssetData === takerAssetData;\n+ });\n+ return [2 /*return*/, { orders: orders }];\n+ });\n+ });\n+ };\n+ /**\n+ * Given a taker asset data string, return all availabled paired maker asset data strings.\n+ * @param takerAssetData A string representing the taker asset data.\n+ * @return An array of asset data strings that can be purchased using takerAssetData.\n+ */\n+ BasicOrderProvider.prototype.getAvailableMakerAssetDatasAsync = function (takerAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var ordersWithTakerAssetData;\n+ return __generator(this, function (_a) {\n+ ordersWithTakerAssetData = _.filter(this.orders, { takerAssetData: takerAssetData });\n+ return [2 /*return*/, _.map(ordersWithTakerAssetData, function (order) { return order.makerAssetData; })];\n+ });\n+ });\n+ };\n+ return BasicOrderProvider;\n+}());\n+exports.BasicOrderProvider = BasicOrderProvider;\n+//# sourceMappingURL=basic_order_provider.js.map\n\\ No newline at end of file" + }, + { + "sha": "aadfcffebd2db4d56d386bffb88022d2d34f97d1", + "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"basic_order_provider.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/order_providers/basic_order_provider.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA2C;AAE3C,0BAA4B;AAG5B,0CAAyC;AAEzC;IAEI;;;;OAIG;IACH,4BAAY,MAAqB;QAC7B,eAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,sBAAO,CAAC,kBAAkB,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IACD;;;;OAIG;IACU,2CAAc,GAA3B,UAA4B,oBAA0C;;;;gBAClE,eAAM,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;gBACzE,cAAc,GAAqB,oBAAoB,eAAzC,EAAE,cAAc,GAAK,oBAAoB,eAAzB,CAA0B;gBAC1D,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAA,KAAK;oBACtC,OAAO,KAAK,CAAC,cAAc,KAAK,cAAc,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,CAAC;gBAC9F,CAAC,CAAC,CAAC;gBACH,sBAAO,EAAE,MAAM,QAAA,EAAE,EAAC;;;KACrB;IACD;;;;OAIG;IACU,6DAAgC,GAA7C,UAA8C,cAAsB;;;;gBAC1D,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;gBAC3E,sBAAO,CAAC,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,cAAc,EAApB,CAAoB,CAAC,EAAC;;;KACzE;IACL,yBAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,gDAAkB\"}\n\\ No newline at end of file" + }, + { + "sha": "17f123933a2e2cf34bb0df0cfd273b5f8351345a", + "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts", + "status": "added", + "additions": 31, + "deletions": 0, + "changes": 31, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,31 @@\n+import { OrderProvider, OrderProviderRequest, OrderProviderResponse } from '../types';\n+export declare class StandardRelayerAPIOrderProvider implements OrderProvider {\n+ readonly apiUrl: string;\n+ readonly networkId: number;\n+ private readonly _sraClient;\n+ /**\n+ * Given an array of APIOrder objects from a standard relayer api, return an array\n+ * of SignedOrderWithRemainingFillableMakerAssetAmounts\n+ */\n+ private static _getSignedOrderWithRemainingFillableMakerAssetAmountFromApi;\n+ /**\n+ * Instantiates a new StandardRelayerAPIOrderProvider instance\n+ * @param apiUrl The standard relayer API base HTTP url you would like to source orders from.\n+ * @param networkId The ethereum network id.\n+ * @return An instance of StandardRelayerAPIOrderProvider\n+ */\n+ constructor(apiUrl: string, networkId: number);\n+ /**\n+ * Given an object that conforms to OrderProviderRequest, return the corresponding OrderProviderResponse that satisfies the request.\n+ * @param orderProviderRequest An instance of OrderProviderRequest. See type for more information.\n+ * @return An instance of OrderProviderResponse. See type for more information.\n+ */\n+ getOrdersAsync(orderProviderRequest: OrderProviderRequest): Promise;\n+ /**\n+ * Given a taker asset data string, return all availabled paired maker asset data strings.\n+ * @param takerAssetData A string representing the taker asset data.\n+ * @return An array of asset data strings that can be purchased using takerAssetData.\n+ */\n+ getAvailableMakerAssetDatasAsync(takerAssetData: string): Promise;\n+}\n+//# sourceMappingURL=standard_relayer_api_order_provider.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "9089c009254da953d697fd1dc57182c9b5df5438", + "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"standard_relayer_api_order_provider.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/order_providers/standard_relayer_api_order_provider.ts\"],\"names\":[],\"mappings\":\"AAIA,OAAO,EAEH,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EAExB,MAAM,UAAU,CAAC;AAIlB,qBAAa,+BAAgC,YAAW,aAAa;IACjE,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,2DAA2D;IAuB1E;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAO7C;;;;OAIG;IACU,cAAc,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmBvG;;;;OAIG;IACU,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAuB3F\"}\n\\ No newline at end of file" + }, + { + "sha": "0b51f468b717b5bbae06bd23b1edbc4b41bad625", + "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5adbf2a7978898a74305d522b39177ecd7602747", + "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a384bd1320acccb2744ba8b9c70f1a579e4c9f29", + "filename": "packages/asset-buyer/lib/src/types.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "06406774a66f791df4ffd712fe6fa8bfd9cadf30", + "filename": "packages/asset-buyer/lib/src/types.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4f623eae3754ca4cdfd20b22467de1142f46aec4", + "filename": "packages/asset-buyer/lib/src/types.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "1c03ee8d422a1051f96cc9f329f96d0a70750dea", + "filename": "packages/asset-buyer/lib/src/types.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "9ca38476db8acdb04f39bab124a6a9ba17eadfc8", + "filename": "packages/asset-buyer/lib/src/utils/assert.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2bb5a9296123ede3535bf9b3b146b92ce7702248", + "filename": "packages/asset-buyer/lib/src/utils/assert.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7e0c9b0485cf8254fb19a14c4b2c57d370e6701f", + "filename": "packages/asset-buyer/lib/src/utils/assert.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7cd6d316ae564bf6fa8baed85745b3203b36d954", + "filename": "packages/asset-buyer/lib/src/utils/assert.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "983ed3d62e24772d48ea1f5e8ddcde5baf3f97ec", + "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "738466134f0d49451f27560107a94dcbb1c45c42", + "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "96852f7866f00e7102a1b9cc4c17b55cdda56fc9", + "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "123b0b5029aa6b3cb6bc1b1cd1b77cf309cfe4e4", + "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "3cbf57581364e05e956114912eb465d447fbad3a", + "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bf9ca187f990f368f47b1e3a9e6e6e4d9b0b5b83", + "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cd3f4de8f0b338549df6ea303f61efa0665c6c10", + "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e03f46c0018dbb6f6da556cdfd7068746819bf7e", + "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "37d1c7cbf9da1164b91e17af907039ba9c921b7e", + "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2bf648b15433f7ac38476fe53942562c653ee5fd", + "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "137688662154b3f583be93b3b27773d1d3ef6ad4", + "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c35dcec6d8ed22a7ef3e0b4db307e7beb67e03dd", + "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "319a109693cae8150ae14e6eb46daf735443059a", + "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "174b93d95d3cda7673265689732454abc6c9bce7", + "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d2e764339e3b797b905bbb91dd94e4d43d97100d", + "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "97bff31dbe611f7696f6d1962710f7e1028d30f0", + "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4bba214e91427d3033da59a261cb89d5f6956055", + "filename": "packages/asset-buyer/lib/src/utils/order_utils.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "21c7d0841772139c142b4e59b02dc36c24bbe8af", + "filename": "packages/asset-buyer/lib/src/utils/order_utils.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "16e4d0de9ec658062c57fa6f3744d547be51c320", + "filename": "packages/asset-buyer/lib/src/utils/order_utils.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a5eb412067a523fffc141978fbcb29a169e4e5a0", + "filename": "packages/asset-buyer/lib/src/utils/order_utils.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "10e4768dfe8b9f2e66ae828716856c4a660b7bfb", + "filename": "packages/asset-buyer/lib/test/asset_buyer_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c654dcc532f3664ebfe9cd1bd9b4d5f9bbdc8eda", + "filename": "packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b4d68fdf173fc8f1cce9cbd1f12d8aa7357a4a5f", + "filename": "packages/asset-buyer/lib/test/asset_buyer_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "13f51afb950350c546e4fa1f8b3c3ecc761f79be", + "filename": "packages/asset-buyer/lib/test/asset_buyer_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "6b665a7c1bd0e6730d82e9248999c78fceba310b", + "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7a0ad191c69d9b3e53b7cc94eed3a024ea66094c", + "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "fbaa256bedd8113de63bc88c0b7205c029918c63", + "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5267e1c4c35da9e0751e4a7591fa1abf8ed1dbe0", + "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "9c7f6cc66fccbbef54b42b4ed88d6a8c75acc60e", + "filename": "packages/asset-buyer/lib/test/utils/chai_setup.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "148cdfb1abee7a61a48f324c74e6640dd1c3e0ed", + "filename": "packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7f7634965e1cd4e1f2334024127784e1832168d9", + "filename": "packages/asset-buyer/lib/test/utils/chai_setup.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "038f5ab7284f432e8f031ca6a41e77b4d0bf34d5", + "filename": "packages/asset-buyer/lib/test/utils/chai_setup.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "032679970025c8278866067ed3b22bd2ea1985bf", + "filename": "packages/asset-buyer/lib/test/utils/mocks.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "35202fc8746e51fb1bae3720518ccaddeb88c600", + "filename": "packages/asset-buyer/lib/test/utils/mocks.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "edb96f66027dff4124fcf44a79a142bb3cfadbd0", + "filename": "packages/asset-buyer/lib/test/utils/mocks.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "994f643b3692b5ee00118ccf1be45aa42ad4253c", + "filename": "packages/asset-buyer/lib/test/utils/mocks.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8f358eaffc6ada8b10fdb42e350c4d131bdbe7ba", + "filename": "packages/asset-buyer/lib/test/utils/test_helpers.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5c073200364fcbb0894063d9bb56722261997ed1", + "filename": "packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7130e8adc77219575d8b48463ed3974990f1d254", + "filename": "packages/asset-buyer/lib/test/utils/test_helpers.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d9d068d6d36950766e83ebbb610e48b85b0e6e8d", + "filename": "packages/asset-buyer/lib/test/utils/test_helpers.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7b7011e0b6437d2d3187424389d87827362eb1d5", + "filename": "packages/asset-buyer/src/asset_buyer.ts", + "status": "modified", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/src/asset_buyer.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/src/asset_buyer.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/src/asset_buyer.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2e8c18170375901afd75bd0f7870d154462cb72f", + "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "01d215359868458ca2243e3b579129fcd731f497", + "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "39c0589b41f9f973546bad0ae6b43a0d882cc1e3", + "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "eb8a8b7ae920f5bfcd6bd8818e61faaac4d6cab3", + "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "22efaf1dcaab0178c3dca5deae964ababa1a2a9b", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a9d66354ae856bfc069faf5538d8a689944e286e", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "6f5d60f1eb926401163ff67e57d6d4fb7d1a8433", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "07950fca48992164eda05b70f2037bd2a7e15bb9", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "fc21a8a563771a17a6c083d93650c931f61f763b", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "73ffb2435120362345484215306e0a5cefe67c29", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f00bc81768bea883505032c76e73713b6586228e", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e8c9d6b323c47715279c6654a3cc22499927e426", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cd09d1f79b63359bad6ee342128dcb5a8930d9a1", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2e2be944397a2e4dd3e241bd849ba1410d13a5b8", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "83576a77478eaf09d8c7e8fb7622053dc48de4ea", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "50c167ab6bbe33e14d75337c6d22e9f5799526f6", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ddbfa2603112011875909bdab559d3dbcbf6712d", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "803550bad4ac0ed6024e760eeecd5bb6bcec6c1e", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "82fe11867729bc2c664303f0d89d41fa8a427735", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "962c3a8cb8c1e38769a321970bf3534374abaab3", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ef33d095310e17d727706d511689d778c3eed1d8", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b9a5cfd90e689ee682b61cd4789337fc5611f7a3", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "21230117fd335038ea5e3bec0443dca1a5ae8f97", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a399fdaff2c9afd23bb07a83dc5034dc49542bf1", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2d80271b10c805fe2bf98ba41b7bac7718b675e2", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4966809f91d6fcd408a209b423d71a1b2db627dc", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "19805d1008ec289e7a9c6f6248154fe103f7487f", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8e153f0c74326bb2f1011b1eb11a732365dc7ea4", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "0f10ace5784f4904a03c216b3ad628a899a12d1f", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "fd16f4c1ead1aae6e8bef1b54462457b8f8d4d82", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bd3bb3c669df074b4bf6aa2ac3d149fd491e3ef1", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b8110cbe5c9e4f6d852198437f051d7b1ed0b7d8", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "59929175a1546e898c178eaf8e8742cff4aaf9d9", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ae7dfffc19b9540b6b3da291848e7a4617d731ae", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e0ccd5714833147dd1cf615e703a3997cc86001d", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ea66d9338c9504c23793599b0f97354c1c60b5dc", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "6c82f6ae3268ab89076b498b0a1c85e2f6379f41", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b2da17bbf1ba5c5077b5b89d29e01512bc1a922f", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4604181f15faa07df36c66dc9174eea8765c7e64", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "66f6ab5da84c555ff2d5b662b12067042d3b8a28", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d681258323cfd0c371d3436f944f7114046c62a4", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b90e8e8865f9dda53f9a4c25670699b0dc79e534", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b0c92e115aae9c2b0cdfd03a052e848e6493f016", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b72cad605ea4ec338bd0741198dc779c11c5fe56", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8360ab153554888d0d5a0ea620b65d3ca963c283", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "18392ba13fb5bed2592d09570fd67e99053f89e4", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "6364c4f6aecb44c9924b2df4c4052b638012fbd7", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f3384d89be80f5e0c62a56a0f77efa0457d6faa4", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d09af8e2a801c1893dd2381acd2a8734dacaf5b3", + "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "9f7187d7a25ee1546531115e6b9aef8f859e4f56", + "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "0fd846ff7309a0e5fd840776cc20d01ba3e0384e", + "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "90f17300ea7c3ee3a79c9f4044100817703cf361", + "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "eb293375e6109cd4c6971eed61ffb2858fbd078e", + "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "83e17213c4c5fe31dbdaa29c5235cbf25742703b", + "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "51be8ed185d103488997f33aba4ac2ffae60761c", + "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "94970bf93f392b314f712d0bf2779a4adb518435", + "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f5f75fe6f08ef36ef0f9f9b025316284c0f74b64", + "filename": "packages/contract-wrappers/lib/src/index.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ef631ecee407294901ea17d6ea5532e70240ee85", + "filename": "packages/contract-wrappers/lib/src/index.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "852fbb0b1ea63b65712ee70afc50adc43a3e6fe2", + "filename": "packages/contract-wrappers/lib/src/index.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8a845bdffaaa2b9e3a410d706694161cb8c0ff47", + "filename": "packages/contract-wrappers/lib/src/index.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cafc5a6934033b3fd1495685aadc58de508d2c84", + "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4457312573d4eba1f248cdd6e467a1fe14b57887", + "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cd4a9ca16e03894bd825f4cc40fa2ad9bd02372d", + "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "919fa1c15466e7538eeadaa8b867b4e82e202afe", + "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "187df85bd213cee6e4d4b327bb941e3da020a9ea", + "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "29321fdf8dc9ced63984ca5ba750e35f9f4bbfae", + "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7c05b93ee34826961a6b998d6f67beae3afda8c7", + "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "352db89a441cf71d24e8592e8a20f07c48ad1ba9", + "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d1c5bfa3e7186629be1bf7c377537d120dce4a88", + "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "0d21d505e75127d4f127cda9bd9d318d49e709a7", + "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "38a1b62a984e82d12ff1d8a76c4b82ed8e5599a4", + "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "848b5ff9b8fcf9d03f157630937295242eb974b4", + "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "457af1c4e04034cb28679db03fbd7deabd673229", + "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "978c8c948543dc31d7cc6e3ae5e7b91615de4a38", + "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "aa3f126c5acabda73bf6a9704c7a23ef3bec5262", + "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "13426da3d8abb0a846c7db545aa26568a4368384", + "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "fa4415ec80545120dfa0efe57dd62f641f6c7724", + "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e7dda4bf2d82f8f6078cc2241d76ae3b4267c426", + "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f2463650c7b0114a1ab1b18f37574d7a2e2ca6a8", + "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "6e93e21a59a09c36fc5e55164482f8ab41d3cdd0", + "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f7edf6d8527e972123a920103cfd0087285d93e9", + "filename": "packages/contract-wrappers/lib/src/types.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c6eb78e44bfb9c45863bf317340d00f19dabd60f", + "filename": "packages/contract-wrappers/lib/src/types.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "19bed91da0be1157a948064ae6850a6372c58fc5", + "filename": "packages/contract-wrappers/lib/src/types.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "93b07f6271b180cd35c9661d6d906d6c06c21597", + "filename": "packages/contract-wrappers/lib/src/types.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b61375a7a341e978bf1650c835dc03a60fd10937", + "filename": "packages/contract-wrappers/lib/src/utils/assert.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bf2af6d0b643b3d7f69deb60c8f8e5aba2e92ff0", + "filename": "packages/contract-wrappers/lib/src/utils/assert.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b072ddd8eba0b764e9776a5b171f46c5f1802f66", + "filename": "packages/contract-wrappers/lib/src/utils/assert.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f0306f2d148d8de7f30be9ccfa3ac48b17de1f67", + "filename": "packages/contract-wrappers/lib/src/utils/assert.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cdb0ef43676e35d4f45eaa1ef04d79f5d7ad2ed0", + "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "1820a5201d0056c583cdca7da0e20b551840fdbb", + "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c7b7cc8b1d360bea858c0837064e4966186b89b3", + "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4dbe7aaf66a07e0bbf083da05b3c44952dbef68d", + "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5de7104088d64d5b2f57f719ab5c19b6f9f0a601", + "filename": "packages/contract-wrappers/lib/src/utils/constants.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c8bbd4312bf32e962b0a634fff60e6b6bc71c266", + "filename": "packages/contract-wrappers/lib/src/utils/constants.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5be2fd6b1173e64e62dcae363bb4183b62b1f41c", + "filename": "packages/contract-wrappers/lib/src/utils/constants.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7a54c61750ede98f887bc8762e1e3ce87b2ef25c", + "filename": "packages/contract-wrappers/lib/src/utils/constants.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bf2efb1f260e603fbb48256a16309f5480a0d566", + "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "dc207b623bc358b49fef017963716deafaf1b34f", + "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7486da408486269a719fd6bd331d0ae0b900a262", + "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bc1181bd9edb76e1e329e8e2b8e12fdf47a77a4b", + "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cf9a7f694c2f849feeaba5e5babe2c3c006f667f", + "filename": "packages/contract-wrappers/lib/src/utils/decorators.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5d830bd5752e56829756705241c8fc53b7491249", + "filename": "packages/contract-wrappers/lib/src/utils/decorators.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "87ce646774eea85e9670ee765b126cff9e00fb20", + "filename": "packages/contract-wrappers/lib/src/utils/decorators.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cd78559049f0b1fc4893142281f4e70ada37ae8d", + "filename": "packages/contract-wrappers/lib/src/utils/decorators.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bd8559861473c62f30c282afb502fbd862d3bbf6", + "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8618170b3b7dc35596b9860dcbb5a0c14f87b3ee", + "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b56035203e946f6afa14724546d80796f297746f", + "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "74da507febac6e0cd1f6295916d9980dff24ee0b", + "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e54230719ba50ba8af35ceb5ee1b27c36f058620", + "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "03c53aa1e46c74f52d597de326aaecda0b32c11d", + "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ea0176059c722ce2ba16573e1537587653ef27f8", + "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "145609e52ea60c728c72c15687c7c834ee4f7c8a", + "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7c655d40b44054e7ebc0f264591c9a75027f3aa1", + "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d76d76ace3cdcb9e78337aecbae768e8d07ad652", + "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e1c5d671fc3a40ffa520c88670f2653624612078", + "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e59424f06cb9bb22e026bdae87c033f2761baa4e", + "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "9d636cab1cba3e23a6cca2f4fc48c7c0984abae8", + "filename": "packages/contract-wrappers/lib/src/utils/utils.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "62631a96dc5cbdf31399b54d1757428b292154b8", + "filename": "packages/contract-wrappers/lib/src/utils/utils.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8aa8364744936ca4fc5ba931089162948edf520f", + "filename": "packages/contract-wrappers/lib/src/utils/utils.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a3c18a94eeb95b07cd8aba1fb5fae1983758fa3b", + "filename": "packages/contract-wrappers/lib/src/utils/utils.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d6cbe40c2924c3c20bd364779f3ab0cb35b23e2d", + "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c81f1925ea457c36d5e508caf76ad2158e2de107", + "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5723fdf6d5ff11f593876c3712e68b5f70e85d92", + "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2cfe7606f9c469e55a6867649618755ad767e381", + "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e8b93e9d824274264f3fa6c850faf73d8bd0dde7", + "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "211be3201693bec7b30bc6c2c666a5d505ca88a8", + "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a2139d607e3e7aa8d9c01e0310fd780b11577b66", + "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "684fe94e3cdcd00e285d1f2252c770a0d7ce4d33", + "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2a5c67822d0000f2fbea74f7395b6fc41333074f", + "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7e098d49cb3ce789ee314742589680438d6a7a38", + "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "9d7755a5520115eb4307e453fe4962d9b3d7f3e4", + "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7855079ed73d31971ed253ce4b9bd033b5998da4", + "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "031d30b12b6d18030a18161df33af9fda3a0c61f", + "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "582deb76edddcaaa297c48aababe895a4a7e5552", + "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "389e385dfd09024b78bff9f24d34f719ab9fb48c", + "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "73f5be3e4f164eaefee590da54111b91351128d4", + "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7cd093498c87df797d7e9f3e90ce15ed9c2aca9d", + "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "35d2716838cd00dd4bbfcc479101f131e4e85acc", + "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "adb4c3aa4cb3848ca62a67f597297b7cd421df08", + "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "3986928a5a8a122a9cf62b85f665068cc6067419", + "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "575a5889fb0f656ddba2a75d42ee3add2bce491a", + "filename": "packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c3e4ebabdfd6be8f9a021316f0a8793371825ba0", + "filename": "packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b37ac6795019e1d9b725da2862e7c08fb20002b9", + "filename": "packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + } + ] +} \ No newline at end of file diff --git a/packages/pipeline/test/fixtures/github/api_v3_forks.json b/packages/pipeline/test/fixtures/github/api_v3_forks.json index 9a65388e43..804b099675 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_forks.json +++ b/packages/pipeline/test/fixtures/github/api_v3_forks.json @@ -1,101 +1,102 @@ [ { - "id": 174390905, - "node_id": "MDEwOlJlcG9zaXRvcnkxNzQzOTA5MDU=", - "name": "0x-monorepo", - "full_name": "AlphaSquadAlgorithms/0x-monorepo", - "private": false, - "owner": { - "login": "AlphaSquadAlgorithms", - "id": 47441730, - "node_id": "MDQ6VXNlcjQ3NDQxNzMw", - "avatar_url": "https://avatars0.githubusercontent.com/u/47441730?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/AlphaSquadAlgorithms", - "html_url": "https://github.com/AlphaSquadAlgorithms", - "followers_url": "https://api.github.com/users/AlphaSquadAlgorithms/followers", - "following_url": "https://api.github.com/users/AlphaSquadAlgorithms/following{/other_user}", - "gists_url": "https://api.github.com/users/AlphaSquadAlgorithms/gists{/gist_id}", - "starred_url": "https://api.github.com/users/AlphaSquadAlgorithms/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/AlphaSquadAlgorithms/subscriptions", - "organizations_url": "https://api.github.com/users/AlphaSquadAlgorithms/orgs", - "repos_url": "https://api.github.com/users/AlphaSquadAlgorithms/repos", - "events_url": "https://api.github.com/users/AlphaSquadAlgorithms/events{/privacy}", - "received_events_url": "https://api.github.com/users/AlphaSquadAlgorithms/received_events", - "type": "User", - "site_admin": false - }, - "html_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo", - "description": "0x protocol monorepo - includes our smart contracts and many developer tools", - "fork": true, - "url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo", - "forks_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/forks", - "keys_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/teams", - "hooks_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/hooks", - "issue_events_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues/events{/number}", - "events_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/events", - "assignees_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/assignees{/user}", - "branches_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/branches{/branch}", - "tags_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/tags", - "blobs_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/statuses/{sha}", - "languages_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/languages", - "stargazers_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/stargazers", - "contributors_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/contributors", - "subscribers_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/subscribers", - "subscription_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/subscription", - "commits_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/contents/{+path}", - "compare_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/merges", - "archive_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/downloads", - "issues_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/issues{/number}", - "pulls_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/pulls{/number}", - "milestones_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/milestones{/number}", - "notifications_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/labels{/name}", - "releases_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/releases{/id}", - "deployments_url": "https://api.github.com/repos/AlphaSquadAlgorithms/0x-monorepo/deployments", - "created_at": "2019-03-07T17:32:08Z", - "updated_at": "2019-03-07T17:32:16Z", - "pushed_at": "2019-03-07T17:28:47Z", - "git_url": "git://github.com/AlphaSquadAlgorithms/0x-monorepo.git", - "ssh_url": "git@github.com:AlphaSquadAlgorithms/0x-monorepo.git", - "clone_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo.git", - "svn_url": "https://github.com/AlphaSquadAlgorithms/0x-monorepo", - "homepage": "", - "size": 86560, - "stargazers_count": 0, - "watchers_count": 0, - "language": "TypeScript", - "has_issues": false, - "has_projects": true, - "has_downloads": true, - "has_wiki": false, - "has_pages": false, - "forks_count": 0, - "mirror_url": null, - "archived": false, - "open_issues_count": 0, - "license": { - "key": "other", - "name": "Other", - "spdx_id": "NOASSERTION", - "url": null, - "node_id": "MDc6TGljZW5zZTA=" - }, - "forks": 0, - "open_issues": 0, - "watchers": 0, - "default_branch": "development" + "id": 174764562, + "node_id": "MDEwOlJlcG9zaXRvcnkxNzQ3NjQ1NjI=", + "name": "0x-monorepo", + "full_name": "NoahZinsmeister/0x-monorepo", + "private": false, + "owner": { + "login": "NoahZinsmeister", + "id": 3760414, + "node_id": "MDQ6VXNlcjM3NjA0MTQ=", + "avatar_url": "https://avatars3.githubusercontent.com/u/3760414?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/NoahZinsmeister", + "html_url": "https://github.com/NoahZinsmeister", + "followers_url": "https://api.github.com/users/NoahZinsmeister/followers", + "following_url": "https://api.github.com/users/NoahZinsmeister/following{/other_user}", + "gists_url": "https://api.github.com/users/NoahZinsmeister/gists{/gist_id}", + "starred_url": "https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/NoahZinsmeister/subscriptions", + "organizations_url": "https://api.github.com/users/NoahZinsmeister/orgs", + "repos_url": "https://api.github.com/users/NoahZinsmeister/repos", + "events_url": "https://api.github.com/users/NoahZinsmeister/events{/privacy}", + "received_events_url": "https://api.github.com/users/NoahZinsmeister/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/NoahZinsmeister/0x-monorepo", + "description": "0x protocol monorepo - includes our smart contracts and many developer tools", + "fork": true, + "url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo", + "forks_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/forks", + "keys_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/teams", + "hooks_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/hooks", + "issue_events_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/issues/events{/number}", + "events_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/events", + "assignees_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/assignees{/user}", + "branches_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/branches{/branch}", + "tags_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/tags", + "blobs_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/languages", + "stargazers_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/stargazers", + "contributors_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/contributors", + "subscribers_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/subscribers", + "subscription_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/subscription", + "commits_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/contents/{+path}", + "compare_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/merges", + "archive_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/downloads", + "issues_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/issues{/number}", + "pulls_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/labels{/name}", + "releases_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/releases{/id}", + "deployments_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/deployments", + "created_at": "2019-03-10T01:23:30Z", + "updated_at": "2019-03-10T04:12:03Z", + "pushed_at": "2019-03-10T04:12:00Z", + "git_url": "git://github.com/NoahZinsmeister/0x-monorepo.git", + "ssh_url": "git@github.com:NoahZinsmeister/0x-monorepo.git", + "clone_url": "https://github.com/NoahZinsmeister/0x-monorepo.git", + "svn_url": "https://github.com/NoahZinsmeister/0x-monorepo", + "homepage": "", + "size": 86271, + "stargazers_count": 0, + "watchers_count": 0, + "language": "TypeScript", + "has_issues": false, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "development" } -] + ] + \ No newline at end of file diff --git a/packages/pipeline/test/fixtures/github/api_v3_forks.ts b/packages/pipeline/test/fixtures/github/api_v3_forks.ts index e700efe88e..8a280e3dab 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_forks.ts +++ b/packages/pipeline/test/fixtures/github/api_v3_forks.ts @@ -1,22 +1,36 @@ import { GithubFork } from '../../../src/entities'; -// To re-create the JSON file from the API (e.g. if the API output schema changes), run the below command: +// To re-create the JSON files from the API (e.g. if the API output schema changes), run the below commands: + +// (1) Forks: // curl https://api.github.com/repos/0xProject/0x-monorepo/forks?per_page=1&page=1 // docs here: https://developer.github.com/v3/repos/forks/#list-forks +// (2) Comparisons: +// curl https://api.github.com/repos/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development +// --> (replace the last part with the fork owner + branch that you get from the Fork API response) +// docs here: https://developer.github.com/v3/repos/commits/#compare-two-commits + const ParsedGithubFork = new GithubFork(); ParsedGithubFork.observedTimestamp = Date.now(); ParsedGithubFork.name = '0x-monorepo'; -ParsedGithubFork.ownerLogin = 'AlphaSquadAlgorithms'; -ParsedGithubFork.createdAt = 1551979928000; // tslint:disable-line:custom-no-magic-numbers -ParsedGithubFork.updatedAt = 1551979936000; // tslint:disable-line:custom-no-magic-numbers -ParsedGithubFork.pushedAt = 1551979727000; // tslint:disable-line:custom-no-magic-numbers -ParsedGithubFork.size = 86560; // tslint:disable-line:custom-no-magic-numbers +ParsedGithubFork.ownerLogin = 'NoahZinsmeister'; +ParsedGithubFork.createdAt = 1552181010000; // tslint:disable-line:custom-no-magic-numbers +ParsedGithubFork.updatedAt = 1552191123000; // tslint:disable-line:custom-no-magic-numbers +ParsedGithubFork.pushedAt = 1552191120000; // tslint:disable-line:custom-no-magic-numbers +ParsedGithubFork.size = 86271; // tslint:disable-line:custom-no-magic-numbers ParsedGithubFork.stargazers = 0; ParsedGithubFork.watchers = 0; ParsedGithubFork.forks = 0; ParsedGithubFork.openIssues = 0; ParsedGithubFork.network = undefined; ParsedGithubFork.subscribers = undefined; +ParsedGithubFork.defaultBranch = 'development'; -export { ParsedGithubFork }; +const EnrichedGithubFork = { ...ParsedGithubFork }; // clone the above +EnrichedGithubFork.status = 'ahead'; +EnrichedGithubFork.aheadBy = 1; +EnrichedGithubFork.behindBy = 0; +EnrichedGithubFork.totalCommits = 1; + +export { ParsedGithubFork, EnrichedGithubFork }; diff --git a/packages/pipeline/test/parsers/github/github_forks_test.ts b/packages/pipeline/test/parsers/github/github_forks_test.ts index 1630cf069e..4afaf2df88 100644 --- a/packages/pipeline/test/parsers/github/github_forks_test.ts +++ b/packages/pipeline/test/parsers/github/github_forks_test.ts @@ -1,11 +1,12 @@ import * as chai from 'chai'; import 'mocha'; -import { GithubForkResponse } from '../../../src/data_sources/github'; -import { parseGithubForks } from '../../../src/parsers/github'; +import { GithubForkResponse, GithubComparisonResponse } from '../../../src/data_sources/github'; +import { parseGithubForks, enrichGithubForkWithComparisonDetails } from '../../../src/parsers/github'; -import { ParsedGithubFork } from '../../fixtures/github/api_v3_forks'; +import { ParsedGithubFork, EnrichedGithubFork } from '../../fixtures/github/api_v3_forks'; import * as githubForksResponse from '../../fixtures/github/api_v3_forks.json'; +import * as githubComparisonResponse from '../../fixtures/github/api_v3_compare.json'; import { chaiSetup } from '../../utils/chai_setup'; @@ -16,12 +17,22 @@ const expect = chai.expect; describe('github_forks', () => { describe('parseGithubForks', () => { it('converts GithubForksResponse to GithubFork entities', () => { - const response: GithubForkResponse[] = githubForksResponse; + const forksResponse: GithubForkResponse[] = githubForksResponse; const expected = ParsedGithubFork; const observedTimestamp = expected.observedTimestamp; - const actualList = parseGithubForks(response, observedTimestamp); + const actualList = parseGithubForks(forksResponse, observedTimestamp); const actual = actualList[0]; expect(actual).deep.equal(expected); }); }); -}); + + describe('enrichGithubFork', () => { + it('enriches GithubFork with comparison details', () => { + const comparisonResponse: GithubComparisonResponse = githubComparisonResponse; + const expected = EnrichedGithubFork; + const actual = enrichGithubForkWithComparisonDetails(ParsedGithubFork, comparisonResponse); + expect(actual).deep.equal(expected); + }); + }); + +}); \ No newline at end of file diff --git a/packages/pipeline/tsconfig.json b/packages/pipeline/tsconfig.json index 540e8940be..0ad8ddaa3c 100644 --- a/packages/pipeline/tsconfig.json +++ b/packages/pipeline/tsconfig.json @@ -17,6 +17,7 @@ "./test/fixtures/etherscan/api_v1_accounts_transactions.json", "./test/fixtures/github/api_v3_repo.json", "./test/fixtures/github/api_v3_pulls.json", - "./test/fixtures/github/api_v3_forks.json" + "./test/fixtures/github/api_v3_forks.json", + "./test/fixtures/github/api_v3_compare.json" ] } From 8d1b27d1302c7a9d6707032e3ce8a925a1d3d143 Mon Sep 17 00:00:00 2001 From: askeluv Date: Mon, 11 Mar 2019 14:31:51 +0800 Subject: [PATCH 06/95] Added entity tests --- packages/pipeline/src/entities/github_fork.ts | 10 +-- packages/pipeline/src/parsers/github/forks.ts | 2 +- .../pipeline/test/entities/github_test.ts | 84 +++++++++++++++++++ .../test/parsers/github/github_forks_test.ts | 11 ++- 4 files changed, 95 insertions(+), 12 deletions(-) create mode 100644 packages/pipeline/test/entities/github_test.ts diff --git a/packages/pipeline/src/entities/github_fork.ts b/packages/pipeline/src/entities/github_fork.ts index 78abf215fa..45b2368017 100644 --- a/packages/pipeline/src/entities/github_fork.ts +++ b/packages/pipeline/src/entities/github_fork.ts @@ -37,10 +37,10 @@ export class GithubFork { @Column({ name: 'open_issues', transformer: numberToBigIntTransformer }) public openIssues!: number; - @Column({ name: 'network', type: 'integer', nullable: true }) + @Column({ name: 'network', transformer: numberToBigIntTransformer, nullable: true }) public network?: number; - @Column({ name: 'subscribers', type: 'integer', nullable: true }) + @Column({ name: 'subscribers', transformer: numberToBigIntTransformer, nullable: true }) public subscribers?: number; @Column({ name: 'default_branch' }) @@ -49,13 +49,13 @@ export class GithubFork { @Column({ name: 'status', nullable: true }) public status?: string; - @Column({ name: 'ahead_by', type: 'integer', nullable: true }) + @Column({ name: 'ahead_by', transformer: numberToBigIntTransformer, nullable: true }) public aheadBy?: number; - @Column({ name: 'behind_by', type: 'integer', nullable: true }) + @Column({ name: 'behind_by', transformer: numberToBigIntTransformer, nullable: true }) public behindBy?: number; - @Column({ name: 'total_commits', type: 'integer', nullable: true }) + @Column({ name: 'total_commits', transformer: numberToBigIntTransformer, nullable: true }) public totalCommits?: number; } diff --git a/packages/pipeline/src/parsers/github/forks.ts b/packages/pipeline/src/parsers/github/forks.ts index 6e848ab326..152bfb3b71 100644 --- a/packages/pipeline/src/parsers/github/forks.ts +++ b/packages/pipeline/src/parsers/github/forks.ts @@ -1,4 +1,4 @@ -import { GithubForkResponse, GithubComparisonResponse } from '../../data_sources/github'; +import { GithubComparisonResponse, GithubForkResponse } from '../../data_sources/github'; import { GithubFork } from '../../entities'; /** diff --git a/packages/pipeline/test/entities/github_test.ts b/packages/pipeline/test/entities/github_test.ts new file mode 100644 index 0000000000..2d4d819243 --- /dev/null +++ b/packages/pipeline/test/entities/github_test.ts @@ -0,0 +1,84 @@ +import 'mocha'; +import 'reflect-metadata'; + +import { GithubFork, GithubPullRequest, GithubRepo } from '../../src/entities'; +import { createDbConnectionOnceAsync } from '../db_setup'; +import { chaiSetup } from '../utils/chai_setup'; + +import { testSaveAndFindEntityAsync } from './util'; + +chaiSetup.configure(); + +// tslint:disable:custom-no-magic-numbers +const fork: GithubFork = { + observedTimestamp: Date.now(), + name: '0x-monorepo', + ownerLogin: 'NoahZinsmeister', + createdAt: 1552181010000, + updatedAt: 1552191123000, + pushedAt: 1552191120000, + size: 86271, + stargazers: 0, + watchers: 0, + forks: 0, + openIssues: 0, + network: undefined, + subscribers: undefined, + defaultBranch: 'development', + status: 'ahead', + aheadBy: 1, + behindBy: 0, + totalCommits: 1, +}; + +const pullRequest: GithubPullRequest = { + observedTimestamp: Date.now(), + repoName: '0x-monorepo', + pullRequestNumber: 1684, + state: 'open', + title: '[WIP] Pull Github data', + userLogin: 'askeluv', + createdAt: 1552019788000, + updatedAt: 1552019788000, + closedAt: null, + mergedAt: null, +}; + +const repo: GithubRepo = { + observedTimestamp: Date.now(), + name: '0x-monorepo', + createdAt: 1495549053000, + updatedAt: 1551908929000, + pushedAt: 1551916745000, + size: 86538, + stargazers: 989, + watchers: 989, + forks: 294, + openIssues: 46, + network: 294, + subscribers: 89, +}; + +describe('GithubFork entity', () => { + it('save/find', async () => { + const connection = await createDbConnectionOnceAsync(); + const forksRepository = connection.getRepository(GithubFork); + await testSaveAndFindEntityAsync(forksRepository, fork); + }); +}); + +describe('GithubPullRequest entity', () => { + it('save/find', async () => { + const connection = await createDbConnectionOnceAsync(); + const pullRequestRepository = connection.getRepository(GithubPullRequest); + await testSaveAndFindEntityAsync(pullRequestRepository, pullRequest); + }); +}); + +describe('GithubRepo entity', () => { + it('save/find', async () => { + const connection = await createDbConnectionOnceAsync(); + const repoRepository = connection.getRepository(GithubRepo); + await testSaveAndFindEntityAsync(repoRepository, repo); + }); +}); diff --git a/packages/pipeline/test/parsers/github/github_forks_test.ts b/packages/pipeline/test/parsers/github/github_forks_test.ts index 4afaf2df88..3622ad86b3 100644 --- a/packages/pipeline/test/parsers/github/github_forks_test.ts +++ b/packages/pipeline/test/parsers/github/github_forks_test.ts @@ -1,12 +1,12 @@ import * as chai from 'chai'; import 'mocha'; -import { GithubForkResponse, GithubComparisonResponse } from '../../../src/data_sources/github'; -import { parseGithubForks, enrichGithubForkWithComparisonDetails } from '../../../src/parsers/github'; +import { GithubComparisonResponse, GithubForkResponse } from '../../../src/data_sources/github'; +import { enrichGithubForkWithComparisonDetails, parseGithubForks } from '../../../src/parsers/github'; -import { ParsedGithubFork, EnrichedGithubFork } from '../../fixtures/github/api_v3_forks'; -import * as githubForksResponse from '../../fixtures/github/api_v3_forks.json'; import * as githubComparisonResponse from '../../fixtures/github/api_v3_compare.json'; +import { EnrichedGithubFork, ParsedGithubFork } from '../../fixtures/github/api_v3_forks'; +import * as githubForksResponse from '../../fixtures/github/api_v3_forks.json'; import { chaiSetup } from '../../utils/chai_setup'; @@ -34,5 +34,4 @@ describe('github_forks', () => { expect(actual).deep.equal(expected); }); }); - -}); \ No newline at end of file +}); From b88e42a52d29268434f0718d5b6e33db60254068 Mon Sep 17 00:00:00 2001 From: askeluv Date: Mon, 11 Mar 2019 14:33:17 +0800 Subject: [PATCH 07/95] Prettier --- .../pipeline/src/data_sources/github/index.ts | 12 +- packages/pipeline/src/entities/github_fork.ts | 1 - packages/pipeline/src/parsers/github/forks.ts | 5 +- packages/pipeline/src/scripts/pull_github.ts | 19 +- .../test/fixtures/github/api_v3_compare.json | 7318 ++++++++--------- .../test/fixtures/github/api_v3_forks.json | 197 +- 6 files changed, 3783 insertions(+), 3769 deletions(-) diff --git a/packages/pipeline/src/data_sources/github/index.ts b/packages/pipeline/src/data_sources/github/index.ts index 1a10b8ebef..c5090900d4 100644 --- a/packages/pipeline/src/data_sources/github/index.ts +++ b/packages/pipeline/src/data_sources/github/index.ts @@ -76,7 +76,9 @@ export class GithubSource { * Call Github API for pull requests and return result - paginated. */ public async getGithubPullsAsync(page: number): Promise { - const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/pulls?access_token=${this._accessToken}&state=all&per_page=100&page=${page}`; + const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/pulls?access_token=${ + this._accessToken + }&state=all&per_page=100&page=${page}`; const resp = await fetchAsync(url); const respJson: GithubPullRequestResponse[] = await resp.json(); return respJson; @@ -86,7 +88,9 @@ export class GithubSource { * Call Github API for forks of repo and return result - paginated. */ public async getGithubForksAsync(page: number): Promise { - const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/forks?access_token=${this._accessToken}&per_page=100&page=${page}`; + const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/forks?access_token=${ + this._accessToken + }&per_page=100&page=${page}`; const resp = await fetchAsync(url); const respJson: GithubForkResponse[] = await resp.json(); return respJson; @@ -96,7 +100,9 @@ export class GithubSource { * Call Github API to get commit status of a fork vs repo's main branch. */ public async getGithubComparisonAsync(forkOwner: string, forkBranch: string): Promise { - const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/compare/${this._branch}...${forkOwner}:${forkBranch}?access_token=${this._accessToken}`; + const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/compare/${ + this._branch + }...${forkOwner}:${forkBranch}?access_token=${this._accessToken}`; const resp = await fetchAsync(url); const respJson: GithubComparisonResponse = await resp.json(); return respJson; diff --git a/packages/pipeline/src/entities/github_fork.ts b/packages/pipeline/src/entities/github_fork.ts index 45b2368017..0e5326bb6a 100644 --- a/packages/pipeline/src/entities/github_fork.ts +++ b/packages/pipeline/src/entities/github_fork.ts @@ -57,5 +57,4 @@ export class GithubFork { @Column({ name: 'total_commits', transformer: numberToBigIntTransformer, nullable: true }) public totalCommits?: number; - } diff --git a/packages/pipeline/src/parsers/github/forks.ts b/packages/pipeline/src/parsers/github/forks.ts index 152bfb3b71..39140aecf1 100644 --- a/packages/pipeline/src/parsers/github/forks.ts +++ b/packages/pipeline/src/parsers/github/forks.ts @@ -30,7 +30,10 @@ export function parseGithubForks(response: GithubForkResponse[], observedTimesta /** * Extends a GithubFork object with additional comparison fields. */ -export function enrichGithubForkWithComparisonDetails(githubFork: GithubFork, comparisonResponse: GithubComparisonResponse): GithubFork { +export function enrichGithubForkWithComparisonDetails( + githubFork: GithubFork, + comparisonResponse: GithubComparisonResponse, +): GithubFork { const enrichedGithubFork = { ...githubFork }; // clone object enrichedGithubFork.status = comparisonResponse.status; enrichedGithubFork.aheadBy = comparisonResponse.ahead_by; diff --git a/packages/pipeline/src/scripts/pull_github.ts b/packages/pipeline/src/scripts/pull_github.ts index c8d7646816..d2534224d9 100644 --- a/packages/pipeline/src/scripts/pull_github.ts +++ b/packages/pipeline/src/scripts/pull_github.ts @@ -5,7 +5,12 @@ import { logUtils } from '@0x/utils'; import { GithubSource } from '../data_sources/github'; import { GithubFork, GithubPullRequest, GithubRepo } from '../entities'; import * as ormConfig from '../ormconfig'; -import { enrichGithubForkWithComparisonDetails, parseGithubForks, parseGithubPulls, parseGithubRepo } from '../parsers/github'; +import { + enrichGithubForkWithComparisonDetails, + parseGithubForks, + parseGithubPulls, + parseGithubRepo, +} from '../parsers/github'; import { handleError } from '../utils'; const GITHUB_OWNER = '0xProject'; @@ -55,11 +60,13 @@ let connection: Connection; const rawForks = await githubSource.getGithubForksAsync(page); const forks = parseGithubForks(rawForks, observedTimestamp); logUtils.log('Fetching compare stats for each fork from API.'); - const enrichedForks = await Promise.all(forks.map( async fork => { - const comparison = await githubSource.getGithubComparisonAsync(fork.ownerLogin, fork.defaultBranch); - const enriched = enrichGithubForkWithComparisonDetails(fork, comparison); - return enriched; - })); + const enrichedForks = await Promise.all( + forks.map(async fork => { + const comparison = await githubSource.getGithubComparisonAsync(fork.ownerLogin, fork.defaultBranch); + const enriched = enrichGithubForkWithComparisonDetails(fork, comparison); + return enriched; + }), + ); numberOfRecords = enrichedForks.length; page++; logUtils.log(`Saving ${enrichedForks.length} forks to database.`); diff --git a/packages/pipeline/test/fixtures/github/api_v3_compare.json b/packages/pipeline/test/fixtures/github/api_v3_compare.json index 4d205ebf58..b54df20a0d 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_compare.json +++ b/packages/pipeline/test/fixtures/github/api_v3_compare.json @@ -1,3667 +1,3667 @@ { - "url": "https://api.github.com/repos/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development", - "html_url": "https://github.com/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development", - "permalink_url": "https://github.com/0xProject/0x-monorepo/compare/0xProject:9e03e1c...NoahZinsmeister:e23547d", - "diff_url": "https://github.com/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development.diff", - "patch_url": "https://github.com/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development.patch", - "base_commit": { - "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "node_id": "MDY6Q29tbWl0OTIxODEzNzE6OWUwM2UxYzc0MmQ3M2M2ZjBiMmQ2MWIxYTA2OTEyMGU0YWE3MWQzZQ==", - "commit": { - "author": { - "name": "Amir Bandeali", - "email": "abandeali1@gmail.com", - "date": "2019-03-07T22:55:32Z" - }, - "committer": { - "name": "GitHub", - "email": "noreply@github.com", - "date": "2019-03-07T22:55:32Z" - }, - "message": "Merge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals", - "tree": { - "sha": "b53b7a259753f55d20852d61eb56ddfc48757352", - "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees/b53b7a259753f55d20852d61eb56ddfc48757352" - }, - "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "comment_count": 0, - "verification": { - "verified": true, - "reason": "valid", - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJcgaFkCRBK7hj4Ov3rIwAAdHIIAK0Hn6PnU4TceyUmxQjRPJMO\nC/nVXyxaplXfyU4U8ZcMfAqWm94AaywNIeCPHaA2PE2+GEjwOvd3nMWPFEL53K3r\nnaZrDKTj2lncaz4t382ihiBPSklWskF2Hl8eUQVc9Bp2w1OlnBBUDzr67m+tmtrz\npfysqWVT+VCw5/4LPpF2/ExpynuDKnWwAGtP1lZuWRN82EYo/9/ni/cUG17TuPaF\nlU8imoTtxUxgptTp8Uz2bA8ys6DpoVFwPzQ+Wf8QFuvf5Xlgy1Sf6QkNHimMdZDa\nsZ2N/Es/oMMw7xxJehNqcRQ3mzmDmd14h78h0o7M9v/lrVwFAEvKdFebCNFGDd0=\n=scus\n-----END PGP SIGNATURE-----\n", - "payload": "tree b53b7a259753f55d20852d61eb56ddfc48757352\nparent 6fbfcef1faa2246909bc09e051190d68aaaa101b\nparent 9471510086d0f3d9ffee3db095cfa3e179a43b31\nauthor Amir Bandeali 1551999332 -0800\ncommitter GitHub 1551999332 -0800\n\nMerge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals" - } - }, - "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "html_url": "https://github.com/0xProject/0x-monorepo/commit/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e/comments", - "author": { - "login": "abandeali1", - "id": 18060168, - "node_id": "MDQ6VXNlcjE4MDYwMTY4", - "avatar_url": "https://avatars0.githubusercontent.com/u/18060168?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/abandeali1", - "html_url": "https://github.com/abandeali1", - "followers_url": "https://api.github.com/users/abandeali1/followers", - "following_url": "https://api.github.com/users/abandeali1/following{/other_user}", - "gists_url": "https://api.github.com/users/abandeali1/gists{/gist_id}", - "starred_url": "https://api.github.com/users/abandeali1/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/abandeali1/subscriptions", - "organizations_url": "https://api.github.com/users/abandeali1/orgs", - "repos_url": "https://api.github.com/users/abandeali1/repos", - "events_url": "https://api.github.com/users/abandeali1/events{/privacy}", - "received_events_url": "https://api.github.com/users/abandeali1/received_events", - "type": "User", - "site_admin": false - }, - "committer": { - "login": "web-flow", - "id": 19864447, - "node_id": "MDQ6VXNlcjE5ODY0NDQ3", - "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/web-flow", - "html_url": "https://github.com/web-flow", - "followers_url": "https://api.github.com/users/web-flow/followers", - "following_url": "https://api.github.com/users/web-flow/following{/other_user}", - "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", - "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", - "organizations_url": "https://api.github.com/users/web-flow/orgs", - "repos_url": "https://api.github.com/users/web-flow/repos", - "events_url": "https://api.github.com/users/web-flow/events{/privacy}", - "received_events_url": "https://api.github.com/users/web-flow/received_events", - "type": "User", - "site_admin": false - }, - "parents": [ - { - "sha": "6fbfcef1faa2246909bc09e051190d68aaaa101b", - "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/6fbfcef1faa2246909bc09e051190d68aaaa101b", - "html_url": "https://github.com/0xProject/0x-monorepo/commit/6fbfcef1faa2246909bc09e051190d68aaaa101b" - }, - { - "sha": "9471510086d0f3d9ffee3db095cfa3e179a43b31", - "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9471510086d0f3d9ffee3db095cfa3e179a43b31", - "html_url": "https://github.com/0xProject/0x-monorepo/commit/9471510086d0f3d9ffee3db095cfa3e179a43b31" - } - ] - }, - "merge_base_commit": { - "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "node_id": "MDY6Q29tbWl0MTc0NzY0NTYyOjllMDNlMWM3NDJkNzNjNmYwYjJkNjFiMWEwNjkxMjBlNGFhNzFkM2U=", - "commit": { - "author": { - "name": "Amir Bandeali", - "email": "abandeali1@gmail.com", - "date": "2019-03-07T22:55:32Z" - }, - "committer": { - "name": "GitHub", - "email": "noreply@github.com", - "date": "2019-03-07T22:55:32Z" - }, - "message": "Merge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals", - "tree": { - "sha": "b53b7a259753f55d20852d61eb56ddfc48757352", - "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees/b53b7a259753f55d20852d61eb56ddfc48757352" - }, - "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "comment_count": 0, - "verification": { - "verified": true, - "reason": "valid", - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJcgaFkCRBK7hj4Ov3rIwAAdHIIAK0Hn6PnU4TceyUmxQjRPJMO\nC/nVXyxaplXfyU4U8ZcMfAqWm94AaywNIeCPHaA2PE2+GEjwOvd3nMWPFEL53K3r\nnaZrDKTj2lncaz4t382ihiBPSklWskF2Hl8eUQVc9Bp2w1OlnBBUDzr67m+tmtrz\npfysqWVT+VCw5/4LPpF2/ExpynuDKnWwAGtP1lZuWRN82EYo/9/ni/cUG17TuPaF\nlU8imoTtxUxgptTp8Uz2bA8ys6DpoVFwPzQ+Wf8QFuvf5Xlgy1Sf6QkNHimMdZDa\nsZ2N/Es/oMMw7xxJehNqcRQ3mzmDmd14h78h0o7M9v/lrVwFAEvKdFebCNFGDd0=\n=scus\n-----END PGP SIGNATURE-----\n", - "payload": "tree b53b7a259753f55d20852d61eb56ddfc48757352\nparent 6fbfcef1faa2246909bc09e051190d68aaaa101b\nparent 9471510086d0f3d9ffee3db095cfa3e179a43b31\nauthor Amir Bandeali 1551999332 -0800\ncommitter GitHub 1551999332 -0800\n\nMerge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals" - } - }, - "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "html_url": "https://github.com/0xProject/0x-monorepo/commit/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e/comments", - "author": { - "login": "abandeali1", - "id": 18060168, - "node_id": "MDQ6VXNlcjE4MDYwMTY4", - "avatar_url": "https://avatars0.githubusercontent.com/u/18060168?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/abandeali1", - "html_url": "https://github.com/abandeali1", - "followers_url": "https://api.github.com/users/abandeali1/followers", - "following_url": "https://api.github.com/users/abandeali1/following{/other_user}", - "gists_url": "https://api.github.com/users/abandeali1/gists{/gist_id}", - "starred_url": "https://api.github.com/users/abandeali1/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/abandeali1/subscriptions", - "organizations_url": "https://api.github.com/users/abandeali1/orgs", - "repos_url": "https://api.github.com/users/abandeali1/repos", - "events_url": "https://api.github.com/users/abandeali1/events{/privacy}", - "received_events_url": "https://api.github.com/users/abandeali1/received_events", - "type": "User", - "site_admin": false - }, - "committer": { - "login": "web-flow", - "id": 19864447, - "node_id": "MDQ6VXNlcjE5ODY0NDQ3", - "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/web-flow", - "html_url": "https://github.com/web-flow", - "followers_url": "https://api.github.com/users/web-flow/followers", - "following_url": "https://api.github.com/users/web-flow/following{/other_user}", - "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", - "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", - "organizations_url": "https://api.github.com/users/web-flow/orgs", - "repos_url": "https://api.github.com/users/web-flow/repos", - "events_url": "https://api.github.com/users/web-flow/events{/privacy}", - "received_events_url": "https://api.github.com/users/web-flow/received_events", - "type": "User", - "site_admin": false - }, - "parents": [ - { - "sha": "6fbfcef1faa2246909bc09e051190d68aaaa101b", - "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/6fbfcef1faa2246909bc09e051190d68aaaa101b", - "html_url": "https://github.com/0xProject/0x-monorepo/commit/6fbfcef1faa2246909bc09e051190d68aaaa101b" - }, - { - "sha": "9471510086d0f3d9ffee3db095cfa3e179a43b31", - "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9471510086d0f3d9ffee3db095cfa3e179a43b31", - "html_url": "https://github.com/0xProject/0x-monorepo/commit/9471510086d0f3d9ffee3db095cfa3e179a43b31" - } - ] - }, - "status": "ahead", - "ahead_by": 1, - "behind_by": 0, - "total_commits": 1, - "commits": [ - { - "sha": "e23547d5dac2626e326dec0d1d27aa11b290d020", - "node_id": "MDY6Q29tbWl0OTIxODEzNzE6ZTIzNTQ3ZDVkYWMyNjI2ZTMyNmRlYzBkMWQyN2FhMTFiMjkwZDAyMA==", - "commit": { + "url": "https://api.github.com/repos/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development", + "html_url": "https://github.com/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development", + "permalink_url": "https://github.com/0xProject/0x-monorepo/compare/0xProject:9e03e1c...NoahZinsmeister:e23547d", + "diff_url": "https://github.com/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development.diff", + "patch_url": "https://github.com/0xProject/0x-monorepo/compare/development...NoahZinsmeister:development.patch", + "base_commit": { + "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "node_id": "MDY6Q29tbWl0OTIxODEzNzE6OWUwM2UxYzc0MmQ3M2M2ZjBiMmQ2MWIxYTA2OTEyMGU0YWE3MWQzZQ==", + "commit": { + "author": { + "name": "Amir Bandeali", + "email": "abandeali1@gmail.com", + "date": "2019-03-07T22:55:32Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2019-03-07T22:55:32Z" + }, + "message": "Merge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals", + "tree": { + "sha": "b53b7a259753f55d20852d61eb56ddfc48757352", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees/b53b7a259753f55d20852d61eb56ddfc48757352" + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJcgaFkCRBK7hj4Ov3rIwAAdHIIAK0Hn6PnU4TceyUmxQjRPJMO\nC/nVXyxaplXfyU4U8ZcMfAqWm94AaywNIeCPHaA2PE2+GEjwOvd3nMWPFEL53K3r\nnaZrDKTj2lncaz4t382ihiBPSklWskF2Hl8eUQVc9Bp2w1OlnBBUDzr67m+tmtrz\npfysqWVT+VCw5/4LPpF2/ExpynuDKnWwAGtP1lZuWRN82EYo/9/ni/cUG17TuPaF\nlU8imoTtxUxgptTp8Uz2bA8ys6DpoVFwPzQ+Wf8QFuvf5Xlgy1Sf6QkNHimMdZDa\nsZ2N/Es/oMMw7xxJehNqcRQ3mzmDmd14h78h0o7M9v/lrVwFAEvKdFebCNFGDd0=\n=scus\n-----END PGP SIGNATURE-----\n", + "payload": "tree b53b7a259753f55d20852d61eb56ddfc48757352\nparent 6fbfcef1faa2246909bc09e051190d68aaaa101b\nparent 9471510086d0f3d9ffee3db095cfa3e179a43b31\nauthor Amir Bandeali 1551999332 -0800\ncommitter GitHub 1551999332 -0800\n\nMerge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals" + } + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e/comments", "author": { - "name": "Noah Zinsmeister", - "email": "noahwz@gmail.com", - "date": "2019-03-10T04:11:30Z" + "login": "abandeali1", + "id": 18060168, + "node_id": "MDQ6VXNlcjE4MDYwMTY4", + "avatar_url": "https://avatars0.githubusercontent.com/u/18060168?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/abandeali1", + "html_url": "https://github.com/abandeali1", + "followers_url": "https://api.github.com/users/abandeali1/followers", + "following_url": "https://api.github.com/users/abandeali1/following{/other_user}", + "gists_url": "https://api.github.com/users/abandeali1/gists{/gist_id}", + "starred_url": "https://api.github.com/users/abandeali1/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/abandeali1/subscriptions", + "organizations_url": "https://api.github.com/users/abandeali1/orgs", + "repos_url": "https://api.github.com/users/abandeali1/repos", + "events_url": "https://api.github.com/users/abandeali1/events{/privacy}", + "received_events_url": "https://api.github.com/users/abandeali1/received_events", + "type": "User", + "site_admin": false }, "committer": { - "name": "Noah Zinsmeister", - "email": "noahwz@gmail.com", - "date": "2019-03-10T04:11:30Z" + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false }, - "message": "enable transfer logic", - "tree": { - "sha": "bb901231fc8dcd7f3c470ec23e8e564ffacd3a2b", - "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees/bb901231fc8dcd7f3c470ec23e8e564ffacd3a2b" + "parents": [ + { + "sha": "6fbfcef1faa2246909bc09e051190d68aaaa101b", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/6fbfcef1faa2246909bc09e051190d68aaaa101b", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/6fbfcef1faa2246909bc09e051190d68aaaa101b" + }, + { + "sha": "9471510086d0f3d9ffee3db095cfa3e179a43b31", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9471510086d0f3d9ffee3db095cfa3e179a43b31", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/9471510086d0f3d9ffee3db095cfa3e179a43b31" + } + ] + }, + "merge_base_commit": { + "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "node_id": "MDY6Q29tbWl0MTc0NzY0NTYyOjllMDNlMWM3NDJkNzNjNmYwYjJkNjFiMWEwNjkxMjBlNGFhNzFkM2U=", + "commit": { + "author": { + "name": "Amir Bandeali", + "email": "abandeali1@gmail.com", + "date": "2019-03-07T22:55:32Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2019-03-07T22:55:32Z" + }, + "message": "Merge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals", + "tree": { + "sha": "b53b7a259753f55d20852d61eb56ddfc48757352", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees/b53b7a259753f55d20852d61eb56ddfc48757352" + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "comment_count": 0, + "verification": { + "verified": true, + "reason": "valid", + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJcgaFkCRBK7hj4Ov3rIwAAdHIIAK0Hn6PnU4TceyUmxQjRPJMO\nC/nVXyxaplXfyU4U8ZcMfAqWm94AaywNIeCPHaA2PE2+GEjwOvd3nMWPFEL53K3r\nnaZrDKTj2lncaz4t382ihiBPSklWskF2Hl8eUQVc9Bp2w1OlnBBUDzr67m+tmtrz\npfysqWVT+VCw5/4LPpF2/ExpynuDKnWwAGtP1lZuWRN82EYo/9/ni/cUG17TuPaF\nlU8imoTtxUxgptTp8Uz2bA8ys6DpoVFwPzQ+Wf8QFuvf5Xlgy1Sf6QkNHimMdZDa\nsZ2N/Es/oMMw7xxJehNqcRQ3mzmDmd14h78h0o7M9v/lrVwFAEvKdFebCNFGDd0=\n=scus\n-----END PGP SIGNATURE-----\n", + "payload": "tree b53b7a259753f55d20852d61eb56ddfc48757352\nparent 6fbfcef1faa2246909bc09e051190d68aaaa101b\nparent 9471510086d0f3d9ffee3db095cfa3e179a43b31\nauthor Amir Bandeali 1551999332 -0800\ncommitter GitHub 1551999332 -0800\n\nMerge pull request #1668 from 0xProject/feat/contracts/tec-txorigin-check\n\nAdd tx.origin to TEC approvals" + } }, - "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits/e23547d5dac2626e326dec0d1d27aa11b290d020", - "comment_count": 0, - "verification": { - "verified": false, - "reason": "unsigned", - "signature": null, - "payload": null - } - }, - "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/e23547d5dac2626e326dec0d1d27aa11b290d020", - "html_url": "https://github.com/0xProject/0x-monorepo/commit/e23547d5dac2626e326dec0d1d27aa11b290d020", - "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/e23547d5dac2626e326dec0d1d27aa11b290d020/comments", - "author": { - "login": "NoahZinsmeister", - "id": 3760414, - "node_id": "MDQ6VXNlcjM3NjA0MTQ=", - "avatar_url": "https://avatars3.githubusercontent.com/u/3760414?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/NoahZinsmeister", - "html_url": "https://github.com/NoahZinsmeister", - "followers_url": "https://api.github.com/users/NoahZinsmeister/followers", - "following_url": "https://api.github.com/users/NoahZinsmeister/following{/other_user}", - "gists_url": "https://api.github.com/users/NoahZinsmeister/gists{/gist_id}", - "starred_url": "https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/NoahZinsmeister/subscriptions", - "organizations_url": "https://api.github.com/users/NoahZinsmeister/orgs", - "repos_url": "https://api.github.com/users/NoahZinsmeister/repos", - "events_url": "https://api.github.com/users/NoahZinsmeister/events{/privacy}", - "received_events_url": "https://api.github.com/users/NoahZinsmeister/received_events", - "type": "User", - "site_admin": false - }, - "committer": { - "login": "NoahZinsmeister", - "id": 3760414, - "node_id": "MDQ6VXNlcjM3NjA0MTQ=", - "avatar_url": "https://avatars3.githubusercontent.com/u/3760414?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/NoahZinsmeister", - "html_url": "https://github.com/NoahZinsmeister", - "followers_url": "https://api.github.com/users/NoahZinsmeister/followers", - "following_url": "https://api.github.com/users/NoahZinsmeister/following{/other_user}", - "gists_url": "https://api.github.com/users/NoahZinsmeister/gists{/gist_id}", - "starred_url": "https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/NoahZinsmeister/subscriptions", - "organizations_url": "https://api.github.com/users/NoahZinsmeister/orgs", - "repos_url": "https://api.github.com/users/NoahZinsmeister/repos", - "events_url": "https://api.github.com/users/NoahZinsmeister/events{/privacy}", - "received_events_url": "https://api.github.com/users/NoahZinsmeister/received_events", - "type": "User", - "site_admin": false - }, - "parents": [ + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e/comments", + "author": { + "login": "abandeali1", + "id": 18060168, + "node_id": "MDQ6VXNlcjE4MDYwMTY4", + "avatar_url": "https://avatars0.githubusercontent.com/u/18060168?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/abandeali1", + "html_url": "https://github.com/abandeali1", + "followers_url": "https://api.github.com/users/abandeali1/followers", + "following_url": "https://api.github.com/users/abandeali1/following{/other_user}", + "gists_url": "https://api.github.com/users/abandeali1/gists{/gist_id}", + "starred_url": "https://api.github.com/users/abandeali1/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/abandeali1/subscriptions", + "organizations_url": "https://api.github.com/users/abandeali1/orgs", + "repos_url": "https://api.github.com/users/abandeali1/repos", + "events_url": "https://api.github.com/users/abandeali1/events{/privacy}", + "received_events_url": "https://api.github.com/users/abandeali1/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "node_id": "MDQ6VXNlcjE5ODY0NDQ3", + "avatar_url": "https://avatars3.githubusercontent.com/u/19864447?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "6fbfcef1faa2246909bc09e051190d68aaaa101b", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/6fbfcef1faa2246909bc09e051190d68aaaa101b", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/6fbfcef1faa2246909bc09e051190d68aaaa101b" + }, + { + "sha": "9471510086d0f3d9ffee3db095cfa3e179a43b31", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9471510086d0f3d9ffee3db095cfa3e179a43b31", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/9471510086d0f3d9ffee3db095cfa3e179a43b31" + } + ] + }, + "status": "ahead", + "ahead_by": 1, + "behind_by": 0, + "total_commits": 1, + "commits": [ { - "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", - "html_url": "https://github.com/0xProject/0x-monorepo/commit/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e" + "sha": "e23547d5dac2626e326dec0d1d27aa11b290d020", + "node_id": "MDY6Q29tbWl0OTIxODEzNzE6ZTIzNTQ3ZDVkYWMyNjI2ZTMyNmRlYzBkMWQyN2FhMTFiMjkwZDAyMA==", + "commit": { + "author": { + "name": "Noah Zinsmeister", + "email": "noahwz@gmail.com", + "date": "2019-03-10T04:11:30Z" + }, + "committer": { + "name": "Noah Zinsmeister", + "email": "noahwz@gmail.com", + "date": "2019-03-10T04:11:30Z" + }, + "message": "enable transfer logic", + "tree": { + "sha": "bb901231fc8dcd7f3c470ec23e8e564ffacd3a2b", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/trees/bb901231fc8dcd7f3c470ec23e8e564ffacd3a2b" + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/git/commits/e23547d5dac2626e326dec0d1d27aa11b290d020", + "comment_count": 0, + "verification": { + "verified": false, + "reason": "unsigned", + "signature": null, + "payload": null + } + }, + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/e23547d5dac2626e326dec0d1d27aa11b290d020", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/e23547d5dac2626e326dec0d1d27aa11b290d020", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/e23547d5dac2626e326dec0d1d27aa11b290d020/comments", + "author": { + "login": "NoahZinsmeister", + "id": 3760414, + "node_id": "MDQ6VXNlcjM3NjA0MTQ=", + "avatar_url": "https://avatars3.githubusercontent.com/u/3760414?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/NoahZinsmeister", + "html_url": "https://github.com/NoahZinsmeister", + "followers_url": "https://api.github.com/users/NoahZinsmeister/followers", + "following_url": "https://api.github.com/users/NoahZinsmeister/following{/other_user}", + "gists_url": "https://api.github.com/users/NoahZinsmeister/gists{/gist_id}", + "starred_url": "https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/NoahZinsmeister/subscriptions", + "organizations_url": "https://api.github.com/users/NoahZinsmeister/orgs", + "repos_url": "https://api.github.com/users/NoahZinsmeister/repos", + "events_url": "https://api.github.com/users/NoahZinsmeister/events{/privacy}", + "received_events_url": "https://api.github.com/users/NoahZinsmeister/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "NoahZinsmeister", + "id": 3760414, + "node_id": "MDQ6VXNlcjM3NjA0MTQ=", + "avatar_url": "https://avatars3.githubusercontent.com/u/3760414?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/NoahZinsmeister", + "html_url": "https://github.com/NoahZinsmeister", + "followers_url": "https://api.github.com/users/NoahZinsmeister/followers", + "following_url": "https://api.github.com/users/NoahZinsmeister/following{/other_user}", + "gists_url": "https://api.github.com/users/NoahZinsmeister/gists{/gist_id}", + "starred_url": "https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/NoahZinsmeister/subscriptions", + "organizations_url": "https://api.github.com/users/NoahZinsmeister/orgs", + "repos_url": "https://api.github.com/users/NoahZinsmeister/repos", + "events_url": "https://api.github.com/users/NoahZinsmeister/events{/privacy}", + "received_events_url": "https://api.github.com/users/NoahZinsmeister/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/commits/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e", + "html_url": "https://github.com/0xProject/0x-monorepo/commit/9e03e1c742d73c6f0b2d61b1a069120e4aa71d3e" + } + ] } - ] - } - ], - "files": [ - { - "sha": "da3bed7a3db35c50bcd43ecaa5837e7f3d5043f9", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts", - "status": "added", - "additions": 180, - "deletions": 0, - "changes": 180, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,180 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type AssetProxyOwnerEventArgs = AssetProxyOwnerAssetProxyRegistrationEventArgs | AssetProxyOwnerConfirmationTimeSetEventArgs | AssetProxyOwnerTimeLockChangeEventArgs | AssetProxyOwnerConfirmationEventArgs | AssetProxyOwnerRevocationEventArgs | AssetProxyOwnerSubmissionEventArgs | AssetProxyOwnerExecutionEventArgs | AssetProxyOwnerExecutionFailureEventArgs | AssetProxyOwnerDepositEventArgs | AssetProxyOwnerOwnerAdditionEventArgs | AssetProxyOwnerOwnerRemovalEventArgs | AssetProxyOwnerRequirementChangeEventArgs;\n+export declare enum AssetProxyOwnerEvents {\n+ AssetProxyRegistration = \"AssetProxyRegistration\",\n+ ConfirmationTimeSet = \"ConfirmationTimeSet\",\n+ TimeLockChange = \"TimeLockChange\",\n+ Confirmation = \"Confirmation\",\n+ Revocation = \"Revocation\",\n+ Submission = \"Submission\",\n+ Execution = \"Execution\",\n+ ExecutionFailure = \"ExecutionFailure\",\n+ Deposit = \"Deposit\",\n+ OwnerAddition = \"OwnerAddition\",\n+ OwnerRemoval = \"OwnerRemoval\",\n+ RequirementChange = \"RequirementChange\"\n+}\n+export interface AssetProxyOwnerAssetProxyRegistrationEventArgs extends DecodedLogArgs {\n+ assetProxyContract: string;\n+ isRegistered: boolean;\n+}\n+export interface AssetProxyOwnerConfirmationTimeSetEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+ confirmationTime: BigNumber;\n+}\n+export interface AssetProxyOwnerTimeLockChangeEventArgs extends DecodedLogArgs {\n+ secondsTimeLocked: BigNumber;\n+}\n+export interface AssetProxyOwnerConfirmationEventArgs extends DecodedLogArgs {\n+ sender: string;\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerRevocationEventArgs extends DecodedLogArgs {\n+ sender: string;\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerSubmissionEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerExecutionEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerExecutionFailureEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerDepositEventArgs extends DecodedLogArgs {\n+ sender: string;\n+ value: BigNumber;\n+}\n+export interface AssetProxyOwnerOwnerAdditionEventArgs extends DecodedLogArgs {\n+ owner: string;\n+}\n+export interface AssetProxyOwnerOwnerRemovalEventArgs extends DecodedLogArgs {\n+ owner: string;\n+}\n+export interface AssetProxyOwnerRequirementChangeEventArgs extends DecodedLogArgs {\n+ required: BigNumber;\n+}\n+export declare class AssetProxyOwnerContract extends BaseContract {\n+ owners: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeOwner: {\n+ sendTransactionAsync(owner: string, txData?: Partial): Promise;\n+ estimateGasAsync(owner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(owner: string): string;\n+ callAsync(owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ revokeConfirmation: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isOwner: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ confirmations: {\n+ callAsync(index_0: BigNumber, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ executeRemoveAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ secondsTimeLocked: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getTransactionCount: {\n+ callAsync(pending: boolean, executed: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ registerAssetProxy: {\n+ sendTransactionAsync(assetProxyContract: string, isRegistered: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(assetProxyContract: string, isRegistered: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetProxyContract: string, isRegistered: boolean): string;\n+ callAsync(assetProxyContract: string, isRegistered: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ addOwner: {\n+ sendTransactionAsync(owner: string, txData?: Partial): Promise;\n+ estimateGasAsync(owner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(owner: string): string;\n+ callAsync(owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isConfirmed: {\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ changeTimeLock: {\n+ sendTransactionAsync(_secondsTimeLocked: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_secondsTimeLocked: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_secondsTimeLocked: BigNumber): string;\n+ callAsync(_secondsTimeLocked: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isAssetProxyRegistered: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getConfirmationCount: {\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transactions: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[string, BigNumber, string, boolean]>;\n+ };\n+ getOwners: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getTransactionIds: {\n+ callAsync(from: BigNumber, to: BigNumber, pending: boolean, executed: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getConfirmations: {\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transactionCount: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ changeRequirement: {\n+ sendTransactionAsync(_required: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_required: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_required: BigNumber): string;\n+ callAsync(_required: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ confirmTransaction: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ submitTransaction: {\n+ sendTransactionAsync(destination: string, value: BigNumber, data: string, txData?: Partial): Promise;\n+ estimateGasAsync(destination: string, value: BigNumber, data: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(destination: string, value: BigNumber, data: string): string;\n+ callAsync(destination: string, value: BigNumber, data: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ confirmationTimes: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ MAX_OWNER_COUNT: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ required: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ replaceOwner: {\n+ sendTransactionAsync(owner: string, newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(owner: string, newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(owner: string, newOwner: string): string;\n+ callAsync(owner: string, newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ executeTransaction: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _owners: string[], _assetProxyContracts: string[], _required: BigNumber, _secondsTimeLocked: BigNumber): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _owners: string[], _assetProxyContracts: string[], _required: BigNumber, _secondsTimeLocked: BigNumber): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=asset_proxy_owner.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "58428c5a5ee8bbedb2ceb65448e9ab54fb5ed5c0", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_proxy_owner.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/asset_proxy_owner.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,wBAAwB,GAC9B,8CAA8C,GAC9C,2CAA2C,GAC3C,sCAAsC,GACtC,oCAAoC,GACpC,kCAAkC,GAClC,kCAAkC,GAClC,iCAAiC,GACjC,wCAAwC,GACxC,+BAA+B,GAC/B,qCAAqC,GACrC,oCAAoC,GACpC,yCAAyC,CAAC;AAEhD,oBAAY,qBAAqB;IAC7B,sBAAsB,2BAA2B;IACjD,mBAAmB,wBAAwB;IAC3C,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,iBAAiB,sBAAsB;CAC1C;AAED,MAAM,WAAW,8CAA+C,SAAQ,cAAc;IAClF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,2CAA4C,SAAQ,cAAc;IAC/E,aAAa,EAAE,SAAS,CAAC;IACzB,gBAAgB,EAAE,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,sCAAuC,SAAQ,cAAc;IAC1E,iBAAiB,EAAE,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,oCAAqC,SAAQ,cAAc;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,kCAAmC,SAAQ,cAAc;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,kCAAmC,SAAQ,cAAc;IACtE,aAAa,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,iCAAkC,SAAQ,cAAc;IACrE,aAAa,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,wCAAyC,SAAQ,cAAc;IAC5E,aAAa,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,+BAAgC,SAAQ,cAAc;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,qCAAsC,SAAQ,cAAc;IACzE,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oCAAqC,SAAQ,cAAc;IACxE,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yCAA0C,SAAQ,cAAc;IAC7E,QAAQ,EAAE,SAAS,CAAC;CACvB;AAMD,qBAAa,uBAAwB,SAAQ,YAAY;IAC9C,MAAM;;MA2BX;IACK,WAAW;;;;;MA2EhB;IACK,kBAAkB;;;;;MA2EvB;IACK,OAAO;;MA2BZ;IACK,aAAa;;MA6BlB;IACK,qCAAqC;;;;;MA2E1C;IACK,iBAAiB;;MAyBtB;IACK,mBAAmB;;MA6BxB;IACK,kBAAkB;;;;;MAoFvB;IACK,QAAQ;;;;;MA2Eb;IACK,WAAW;;MA2BhB;IACK,cAAc;;;;;MA2EnB;IACK,sBAAsB;;MA2B3B;IACK,oBAAoB;;MA2BzB;IACK,YAAY;;MA2BjB;IACK,SAAS;;MAyBd;IACK,iBAAiB;;MAiCtB;IACK,gBAAgB;;MA2BrB;IACK,gBAAgB;;MAyBrB;IACK,iBAAiB;;;;;MA2EtB;IACK,kBAAkB;;;;;MA2EvB;IACK,iBAAiB;;;;;MA6FtB;IACK,iBAAiB;;MA2BtB;IACK,eAAe;;MAyBpB;IACK,QAAQ;;MAyBb;IACK,YAAY;;;;;MAoFjB;IACK,kBAAkB;;;;;MA2EvB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,OAAO,EAAE,MAAM,EAAE,EACjB,oBAAoB,EAAE,MAAM,EAAE,EAC9B,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,SAAS,GAClC,OAAO,CAAC,uBAAuB,CAAC;WAaf,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,OAAO,EAAE,MAAM,EAAE,EACjB,oBAAoB,EAAE,MAAM,EAAE,EAC9B,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,SAAS,GAClC,OAAO,CAAC,uBAAuB,CAAC;gBAyCvB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "deaf4bbd1ca935029de610ba2a45e9a9634c54f3", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js", - "status": "added", - "additions": 1445, - "deletions": 0, - "changes": 1445, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,1445 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var AssetProxyOwnerEvents;\n+(function (AssetProxyOwnerEvents) {\n+ AssetProxyOwnerEvents[\"AssetProxyRegistration\"] = \"AssetProxyRegistration\";\n+ AssetProxyOwnerEvents[\"ConfirmationTimeSet\"] = \"ConfirmationTimeSet\";\n+ AssetProxyOwnerEvents[\"TimeLockChange\"] = \"TimeLockChange\";\n+ AssetProxyOwnerEvents[\"Confirmation\"] = \"Confirmation\";\n+ AssetProxyOwnerEvents[\"Revocation\"] = \"Revocation\";\n+ AssetProxyOwnerEvents[\"Submission\"] = \"Submission\";\n+ AssetProxyOwnerEvents[\"Execution\"] = \"Execution\";\n+ AssetProxyOwnerEvents[\"ExecutionFailure\"] = \"ExecutionFailure\";\n+ AssetProxyOwnerEvents[\"Deposit\"] = \"Deposit\";\n+ AssetProxyOwnerEvents[\"OwnerAddition\"] = \"OwnerAddition\";\n+ AssetProxyOwnerEvents[\"OwnerRemoval\"] = \"OwnerRemoval\";\n+ AssetProxyOwnerEvents[\"RequirementChange\"] = \"RequirementChange\";\n+})(AssetProxyOwnerEvents = exports.AssetProxyOwnerEvents || (exports.AssetProxyOwnerEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var AssetProxyOwnerContract = /** @class */ (function (_super) {\n+ __extends(AssetProxyOwnerContract, _super);\n+ function AssetProxyOwnerContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'AssetProxyOwner', abi, address, supportedProvider, txDefaults) || this;\n+ _this.owners = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owners(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owners(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeOwner = {\n+ sendTransactionAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeOwner.estimateGasAsync.bind(self, owner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (owner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeOwner(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.revokeConfirmation = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.revokeConfirmation.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('revokeConfirmation(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isOwner = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isOwner(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isOwner(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.confirmations = {\n+ callAsync: function (index_0, index_1, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmations(uint256,address)', [index_0,\n+ index_1\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('confirmations(uint256,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.executeRemoveAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.executeRemoveAuthorizedAddressAtIndex.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('executeRemoveAuthorizedAddressAtIndex(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.secondsTimeLocked = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('secondsTimeLocked()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('secondsTimeLocked()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTransactionCount = {\n+ callAsync: function (pending, executed, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTransactionCount(bool,bool)', [pending,\n+ executed\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTransactionCount(bool,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.registerAssetProxy = {\n+ sendTransactionAsync: function (assetProxyContract, isRegistered, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.registerAssetProxy.estimateGasAsync.bind(self, assetProxyContract, isRegistered))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (assetProxyContract, isRegistered, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (assetProxyContract, isRegistered) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (assetProxyContract, isRegistered, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('registerAssetProxy(address,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.addOwner = {\n+ sendTransactionAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addOwner.estimateGasAsync.bind(self, owner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (owner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addOwner(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isConfirmed = {\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isConfirmed(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isConfirmed(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.changeTimeLock = {\n+ sendTransactionAsync: function (_secondsTimeLocked, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.changeTimeLock.estimateGasAsync.bind(self, _secondsTimeLocked))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_secondsTimeLocked, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_secondsTimeLocked) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_secondsTimeLocked, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('changeTimeLock(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isAssetProxyRegistered = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isAssetProxyRegistered(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isAssetProxyRegistered(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getConfirmationCount = {\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getConfirmationCount(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getConfirmationCount(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transactions = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transactions(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transactions(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getOwners = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getOwners()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getOwners()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTransactionIds = {\n+ callAsync: function (from, to, pending, executed, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTransactionIds(uint256,uint256,bool,bool)', [from,\n+ to,\n+ pending,\n+ executed\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTransactionIds(uint256,uint256,bool,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getConfirmations = {\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getConfirmations(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getConfirmations(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transactionCount = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transactionCount()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transactionCount()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.changeRequirement = {\n+ sendTransactionAsync: function (_required, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.changeRequirement.estimateGasAsync.bind(self, _required))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_required, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_required) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_required, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('changeRequirement(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.confirmTransaction = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.confirmTransaction.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('confirmTransaction(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.submitTransaction = {\n+ sendTransactionAsync: function (destination, value, data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.submitTransaction.estimateGasAsync.bind(self, destination, value, data))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (destination, value, data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (destination, value, data) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (destination, value, data, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('submitTransaction(address,uint256,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.confirmationTimes = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmationTimes(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('confirmationTimes(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.MAX_OWNER_COUNT = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('MAX_OWNER_COUNT()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('MAX_OWNER_COUNT()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.required = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('required()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('required()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.replaceOwner = {\n+ sendTransactionAsync: function (owner, newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.replaceOwner.estimateGasAsync.bind(self, owner, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (owner, newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (owner, newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (owner, newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('replaceOwner(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.executeTransaction = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.executeTransaction.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('executeTransaction(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ AssetProxyOwnerContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _owners, _assetProxyContracts, _required, _secondsTimeLocked) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, AssetProxyOwnerContract.deployAsync(bytecode, abi, provider, txDefaults, _owners, _assetProxyContracts, _required, _secondsTimeLocked)];\n+ });\n+ });\n+ };\n+ AssetProxyOwnerContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _owners, _assetProxyContracts, _required, _secondsTimeLocked) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_owners,\n+ _assetProxyContracts,\n+ _required,\n+ _secondsTimeLocked\n+ ], base_contract_1.BaseContract._bigNumberToString), 4), _owners = _a[0], _assetProxyContracts = _a[1], _required = _a[2], _secondsTimeLocked = _a[3];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_owners,\n+ _assetProxyContracts,\n+ _required,\n+ _secondsTimeLocked\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"AssetProxyOwner successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new AssetProxyOwnerContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_owners,\n+ _assetProxyContracts,\n+ _required,\n+ _secondsTimeLocked\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return AssetProxyOwnerContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.AssetProxyOwnerContract = AssetProxyOwnerContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=asset_proxy_owner.js.map\n\\ No newline at end of file" - }, - { - "sha": "9d796719175f5703e76872406a30568b5c5f1229", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_proxy_owner.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/asset_proxy_owner.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "ff28484cf0d4f3a402e9308ad812cbc5e620b1ae", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts", - "status": "added", - "additions": 85, - "deletions": 0, - "changes": 85, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,85 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type DummyERC20TokenEventArgs = DummyERC20TokenTransferEventArgs | DummyERC20TokenApprovalEventArgs;\n+export declare enum DummyERC20TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\"\n+}\n+export interface DummyERC20TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface DummyERC20TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export declare class DummyERC20TokenContract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_spender: string, _value: BigNumber): string;\n+ callAsync(_spender: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string;\n+ callAsync(_from: string, _to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ decimals: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ mint: {\n+ sendTransactionAsync(_value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_value: BigNumber): string;\n+ callAsync(_value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _value: BigNumber): string;\n+ callAsync(_to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(_owner: string, _spender: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ setBalance: {\n+ sendTransactionAsync(_target: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_target: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_target: string, _value: BigNumber): string;\n+ callAsync(_target: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ MAX_MINT_AMOUNT: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string, _decimals: BigNumber, _totalSupply: BigNumber): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string, _decimals: BigNumber, _totalSupply: BigNumber): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=dummy_erc20_token.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "e11e773f837176ec3d1158a2399eb08cb1716ced", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc20_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc20_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,wBAAwB,GAC9B,gCAAgC,GAChC,gCAAgC,CAAC;AAEvC,oBAAY,qBAAqB;IAC7B,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACxB;AAED,MAAM,WAAW,gCAAiC,SAAQ,cAAc;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,gCAAiC,SAAQ,cAAc;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,uBAAwB,SAAQ,YAAY;IAC9C,IAAI;;MAyBT;IACK,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,QAAQ;;MAyBb;IACK,SAAS;;MA2Bd;IACK,KAAK;;MAyBV;IACK,MAAM;;MAyBX;IACK,IAAI;;;;;MA2ET;IACK,QAAQ;;;;;MAoFb;IACK,SAAS;;MA6Bd;IACK,UAAU;;;;;MAoFf;IACK,iBAAiB;;;;;MA2EtB;IACK,eAAe;;MAyBpB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,SAAS,GAC5B,OAAO,CAAC,uBAAuB,CAAC;WAaf,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,SAAS,GAC5B,OAAO,CAAC,uBAAuB,CAAC;gBAyCvB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "bb4e3857e51bf86a3cd74390cd1314168fbd05e1", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js", - "status": "added", - "additions": 843, - "deletions": 0, - "changes": 843, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,843 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var DummyERC20TokenEvents;\n+(function (DummyERC20TokenEvents) {\n+ DummyERC20TokenEvents[\"Transfer\"] = \"Transfer\";\n+ DummyERC20TokenEvents[\"Approval\"] = \"Approval\";\n+})(DummyERC20TokenEvents = exports.DummyERC20TokenEvents || (exports.DummyERC20TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var DummyERC20TokenContract = /** @class */ (function (_super) {\n+ __extends(DummyERC20TokenContract, _super);\n+ function DummyERC20TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'DummyERC20Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _spender, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_spender, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_spender, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.decimals = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('decimals()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('decimals()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.mint = {\n+ sendTransactionAsync: function (_value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.mint.estimateGasAsync.bind(self, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('mint(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (_owner, _spender, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner,\n+ _spender\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.setBalance = {\n+ sendTransactionAsync: function (_target, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.setBalance.estimateGasAsync.bind(self, _target, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_target, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_target, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_target, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('setBalance(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.MAX_MINT_AMOUNT = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('MAX_MINT_AMOUNT()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('MAX_MINT_AMOUNT()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ DummyERC20TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _name, _symbol, _decimals, _totalSupply) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, DummyERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults, _name, _symbol, _decimals, _totalSupply)];\n+ });\n+ });\n+ };\n+ DummyERC20TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _name, _symbol, _decimals, _totalSupply) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_name,\n+ _symbol,\n+ _decimals,\n+ _totalSupply\n+ ], base_contract_1.BaseContract._bigNumberToString), 4), _name = _a[0], _symbol = _a[1], _decimals = _a[2], _totalSupply = _a[3];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_name,\n+ _symbol,\n+ _decimals,\n+ _totalSupply\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"DummyERC20Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new DummyERC20TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_name,\n+ _symbol,\n+ _decimals,\n+ _totalSupply\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return DummyERC20TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.DummyERC20TokenContract = DummyERC20TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=dummy_erc20_token.js.map\n\\ No newline at end of file" - }, - { - "sha": "ccf84738e65bb9b7520b2b69a0f04206808c3106", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc20_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc20_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "0c9f3baa8ef65ff4159f9916c463246009793a10", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts", - "status": "added", - "additions": 100, - "deletions": 0, - "changes": 100, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,100 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type DummyERC721TokenEventArgs = DummyERC721TokenTransferEventArgs | DummyERC721TokenApprovalEventArgs | DummyERC721TokenApprovalForAllEventArgs;\n+export declare enum DummyERC721TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\",\n+ ApprovalForAll = \"ApprovalForAll\"\n+}\n+export interface DummyERC721TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _tokenId: BigNumber;\n+}\n+export interface DummyERC721TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _approved: string;\n+ _tokenId: BigNumber;\n+}\n+export interface DummyERC721TokenApprovalForAllEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _operator: string;\n+ _approved: boolean;\n+}\n+export declare class DummyERC721TokenContract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getApproved: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_approved: string, _tokenId: BigNumber): string;\n+ callAsync(_approved: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ mint: {\n+ sendTransactionAsync(_to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _tokenId: BigNumber): string;\n+ callAsync(_to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom1: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ ownerOf: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ burn: {\n+ sendTransactionAsync(_owner: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_owner: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_owner: string, _tokenId: BigNumber): string;\n+ callAsync(_owner: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ setApprovalForAll: {\n+ sendTransactionAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_operator: string, _approved: boolean): string;\n+ callAsync(_operator: string, _approved: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom2: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber, _data: string): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isApprovedForAll: {\n+ callAsync(_owner: string, _operator: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=dummy_erc721_token.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "134e1107e302a6392449a8233eb09f9f704c4e6d", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc721_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc721_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,yBAAyB,GAC/B,iCAAiC,GACjC,iCAAiC,GACjC,uCAAuC,CAAC;AAE9C,oBAAY,sBAAsB;IAC9B,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;CACpC;AAED,MAAM,WAAW,iCAAkC,SAAQ,cAAc;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,iCAAkC,SAAQ,cAAc;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,uCAAwC,SAAQ,cAAc;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACtB;AAMD,qBAAa,wBAAyB,SAAQ,YAAY;IAC/C,IAAI;;MAyBT;IACK,WAAW;;MA2BhB;IACK,OAAO;;;;;MAoFZ;IACK,YAAY;;;;;MA6FjB;IACK,IAAI;;;;;MAoFT;IACK,iBAAiB;;;;;MA6FtB;IACK,OAAO;;MA2BZ;IACK,SAAS;;MA2Bd;IACK,KAAK;;MAyBV;IACK,MAAM;;MAyBX;IACK,IAAI;;;;;MAoFT;IACK,iBAAiB;;;;;MAoFtB;IACK,iBAAiB;;;;;MAsGtB;IACK,gBAAgB;;MA6BrB;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,CAAC;WAWhB,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,CAAC;gBAiCxB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "4c040e84e8c03672958c5d22f9e3fd22366c44c2", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js", - "status": "added", - "additions": 988, - "deletions": 0, - "changes": 988, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,988 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var DummyERC721TokenEvents;\n+(function (DummyERC721TokenEvents) {\n+ DummyERC721TokenEvents[\"Transfer\"] = \"Transfer\";\n+ DummyERC721TokenEvents[\"Approval\"] = \"Approval\";\n+ DummyERC721TokenEvents[\"ApprovalForAll\"] = \"ApprovalForAll\";\n+})(DummyERC721TokenEvents = exports.DummyERC721TokenEvents || (exports.DummyERC721TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var DummyERC721TokenContract = /** @class */ (function (_super) {\n+ __extends(DummyERC721TokenContract, _super);\n+ function DummyERC721TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'DummyERC721Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getApproved = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getApproved(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _approved, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_approved, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_approved, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.mint = {\n+ sendTransactionAsync: function (_to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.mint.estimateGasAsync.bind(self, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('mint(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom1 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom1.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.ownerOf = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.burn = {\n+ sendTransactionAsync: function (_owner, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.burn.estimateGasAsync.bind(self, _owner, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_owner, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_owner, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_owner, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('burn(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.setApprovalForAll = {\n+ sendTransactionAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.setApprovalForAll.estimateGasAsync.bind(self, _operator, _approved))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_operator, _approved) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_operator, _approved, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom2 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom2.estimateGasAsync.bind(self, _from, _to, _tokenId, _data))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId, _data) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, _data, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isApprovedForAll = {\n+ callAsync: function (_owner, _operator, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [_owner,\n+ _operator\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ DummyERC721TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _name, _symbol) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, DummyERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults, _name, _symbol)];\n+ });\n+ });\n+ };\n+ DummyERC721TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _name, _symbol) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_name,\n+ _symbol\n+ ], base_contract_1.BaseContract._bigNumberToString), 2), _name = _a[0], _symbol = _a[1];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_name,\n+ _symbol\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"DummyERC721Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new DummyERC721TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_name,\n+ _symbol\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return DummyERC721TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.DummyERC721TokenContract = DummyERC721TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=dummy_erc721_token.js.map\n\\ No newline at end of file" - }, - { - "sha": "d0b0eff0a07d9fe790551b5b733adb8524df3906", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc721_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc721_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "61ea2e7ffee45d3c8fd5182ba65e30234495d3c0", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts", - "status": "added", - "additions": 199, - "deletions": 0, - "changes": 199, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,199 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class DutchAuctionContract extends BaseContract {\n+ getAuctionDetails: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ beginTimeSeconds: BigNumber;\n+ endTimeSeconds: BigNumber;\n+ beginAmount: BigNumber;\n+ endAmount: BigNumber;\n+ currentAmount: BigNumber;\n+ currentTimeSeconds: BigNumber;\n+ }>;\n+ };\n+ matchOrders: {\n+ sendTransactionAsync(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string, txData?: Partial): Promise;\n+ estimateGasAsync(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string): string;\n+ callAsync(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ left: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ right: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ leftMakerAssetSpreadAmount: BigNumber;\n+ }>;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=dutch_auction.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "37a0e33f77265946c71b8f12f81ee2dd215aebec", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dutch_auction.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dutch_auction.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,oBAAqB,SAAQ,YAAY;IAC3C,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2EtB;IACK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsGhB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,GACtB,OAAO,CAAC,oBAAoB,CAAC;WAUZ,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,GACtB,OAAO,CAAC,oBAAoB,CAAC;gBA6BpB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "5809f6df7c6a0a08abd992828ebbc36af909eef0", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js", - "status": "added", - "additions": 311, - "deletions": 0, - "changes": 311, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,311 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var DutchAuctionContract = /** @class */ (function (_super) {\n+ __extends(DutchAuctionContract, _super);\n+ function DutchAuctionContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'DutchAuction', abi, address, supportedProvider, txDefaults) || this;\n+ _this.getAuctionDetails = {\n+ sendTransactionAsync: function (order, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.getAuctionDetails.estimateGasAsync.bind(self, order))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (order, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (order) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (order, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.matchOrders = {\n+ sendTransactionAsync: function (buyOrder, sellOrder, buySignature, sellSignature, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.matchOrders.estimateGasAsync.bind(self, buyOrder, sellOrder, buySignature, sellSignature))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (buyOrder, sellOrder, buySignature, sellSignature, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (buyOrder, sellOrder, buySignature, sellSignature) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (buyOrder, sellOrder, buySignature, sellSignature, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ DutchAuctionContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _exchange) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, DutchAuctionContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange)];\n+ });\n+ });\n+ };\n+ DutchAuctionContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _exchange) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_exchange\n+ ], base_contract_1.BaseContract._bigNumberToString), 1), _exchange = _a[0];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_exchange\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"DutchAuction successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new DutchAuctionContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_exchange\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return DutchAuctionContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.DutchAuctionContract = DutchAuctionContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=dutch_auction.js.map\n\\ No newline at end of file" - }, - { - "sha": "ad74e3eb29d8ee956e1613b2dffed365db74ab02", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dutch_auction.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dutch_auction.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "532e412d689eaed0b27ca9284d5981714ef7307e", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts", - "status": "added", - "additions": 62, - "deletions": 0, - "changes": 62, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,62 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC20ProxyEventArgs = ERC20ProxyAuthorizedAddressAddedEventArgs | ERC20ProxyAuthorizedAddressRemovedEventArgs;\n+export declare enum ERC20ProxyEvents {\n+ AuthorizedAddressAdded = \"AuthorizedAddressAdded\",\n+ AuthorizedAddressRemoved = \"AuthorizedAddressRemoved\"\n+}\n+export interface ERC20ProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface ERC20ProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export declare class ERC20ProxyContract extends BaseContract {\n+ addAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorities: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string, index: BigNumber): string;\n+ callAsync(target: string, index: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getProxyId: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorized: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAuthorizedAddresses: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc20_proxy.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "c6584a6bb33565bcdcfbf3052f3fd56d7d74d9ae", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_proxy.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_proxy.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,mBAAmB,GACzB,yCAAyC,GACzC,2CAA2C,CAAC;AAElD,oBAAY,gBAAgB;IACxB,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;CACxD;AAED,MAAM,WAAW,yCAA0C,SAAQ,cAAc;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2CAA4C,SAAQ,cAAc;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,kBAAmB,SAAQ,YAAY;IACzC,oBAAoB;;;;;MA2EzB;IACK,WAAW;;MA2BhB;IACK,uBAAuB;;;;;MA2E5B;IACK,KAAK;;MAyBV;IACK,8BAA8B;;;;;MAoFnC;IACK,UAAU;;MAyBf;IACK,UAAU;;MA2Bf;IACK,sBAAsB;;MAyB3B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;WASV,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;gBAyBlB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "b83d3f661742d6c1a4a9c656cfdd4a4a6c0fc2c0", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js", - "status": "added", - "additions": 570, - "deletions": 0, - "changes": 570, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,570 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC20ProxyEvents;\n+(function (ERC20ProxyEvents) {\n+ ERC20ProxyEvents[\"AuthorizedAddressAdded\"] = \"AuthorizedAddressAdded\";\n+ ERC20ProxyEvents[\"AuthorizedAddressRemoved\"] = \"AuthorizedAddressRemoved\";\n+})(ERC20ProxyEvents = exports.ERC20ProxyEvents || (exports.ERC20ProxyEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC20ProxyContract = /** @class */ (function (_super) {\n+ __extends(ERC20ProxyContract, _super);\n+ function ERC20ProxyContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC20Proxy', abi, address, supportedProvider, txDefaults) || this;\n+ _this.addAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorities = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorities(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target, index))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target, index) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, index, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getProxyId = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getProxyId()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getProxyId()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorized = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorized(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorized(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAuthorizedAddresses = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC20ProxyContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC20ProxyContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC20ProxyContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC20Proxy successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC20ProxyContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC20ProxyContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC20ProxyContract = ERC20ProxyContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc20_proxy.js.map\n\\ No newline at end of file" - }, - { - "sha": "54b25eab5fb2ae38ca6e2dd316bad221b977b82f", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_proxy.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_proxy.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "ad35ed5462ec077fb0c1715d19dcb0fc4dc89754", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts", - "status": "added", - "additions": 52, - "deletions": 0, - "changes": 52, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,52 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC20TokenEventArgs = ERC20TokenTransferEventArgs | ERC20TokenApprovalEventArgs;\n+export declare enum ERC20TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\"\n+}\n+export interface ERC20TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface ERC20TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export declare class ERC20TokenContract extends BaseContract {\n+ approve: {\n+ sendTransactionAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_spender: string, _value: BigNumber): string;\n+ callAsync(_spender: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string;\n+ callAsync(_from: string, _to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _value: BigNumber): string;\n+ callAsync(_to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(_owner: string, _spender: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc20_token.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "93136337176e00c984fba23b99abe9f5fc8f04ed", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,mBAAmB,GACzB,2BAA2B,GAC3B,2BAA2B,CAAC;AAElC,oBAAY,gBAAgB;IACxB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACxB;AAED,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,kBAAmB,SAAQ,YAAY;IACzC,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,SAAS;;MA2Bd;IACK,QAAQ;;;;;MAoFb;IACK,SAAS;;MA6Bd;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;WASV,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;gBAyBlB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "bb173bb962edd44ea30bc054c1b5a77bc2d03fcd", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js", - "status": "added", - "additions": 456, - "deletions": 0, - "changes": 456, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,456 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC20TokenEvents;\n+(function (ERC20TokenEvents) {\n+ ERC20TokenEvents[\"Transfer\"] = \"Transfer\";\n+ ERC20TokenEvents[\"Approval\"] = \"Approval\";\n+})(ERC20TokenEvents = exports.ERC20TokenEvents || (exports.ERC20TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC20TokenContract = /** @class */ (function (_super) {\n+ __extends(ERC20TokenContract, _super);\n+ function ERC20TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC20Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.approve = {\n+ sendTransactionAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _spender, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_spender, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_spender, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (_owner, _spender, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner,\n+ _spender\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC20TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC20TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC20Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC20TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC20TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC20TokenContract = ERC20TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc20_token.js.map\n\\ No newline at end of file" - }, - { - "sha": "4d030067eb550f7b703e695be863f8129e6c2a61", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "bed91f0f424406f8137c6e60d0487e58e7c84b69", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts", - "status": "added", - "additions": 62, - "deletions": 0, - "changes": 62, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,62 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC721ProxyEventArgs = ERC721ProxyAuthorizedAddressAddedEventArgs | ERC721ProxyAuthorizedAddressRemovedEventArgs;\n+export declare enum ERC721ProxyEvents {\n+ AuthorizedAddressAdded = \"AuthorizedAddressAdded\",\n+ AuthorizedAddressRemoved = \"AuthorizedAddressRemoved\"\n+}\n+export interface ERC721ProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface ERC721ProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export declare class ERC721ProxyContract extends BaseContract {\n+ addAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorities: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string, index: BigNumber): string;\n+ callAsync(target: string, index: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getProxyId: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorized: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAuthorizedAddresses: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc721_proxy.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "3c31fe9d2a210dc8c79df21c8863f83b6d330ad3", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_proxy.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_proxy.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,oBAAoB,GAC1B,0CAA0C,GAC1C,4CAA4C,CAAC;AAEnD,oBAAY,iBAAiB;IACzB,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;CACxD;AAED,MAAM,WAAW,0CAA2C,SAAQ,cAAc;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4CAA6C,SAAQ,cAAc;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,mBAAoB,SAAQ,YAAY;IAC1C,oBAAoB;;;;;MA2EzB;IACK,WAAW;;MA2BhB;IACK,uBAAuB;;;;;MA2E5B;IACK,KAAK;;MAyBV;IACK,8BAA8B;;;;;MAoFnC;IACK,UAAU;;MAyBf;IACK,UAAU;;MA2Bf;IACK,sBAAsB;;MAyB3B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;WASX,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;gBAyBnB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "1ae7b1b4ffaa56286edfb7d14578639dc49fc811", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js", - "status": "added", - "additions": 570, - "deletions": 0, - "changes": 570, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,570 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC721ProxyEvents;\n+(function (ERC721ProxyEvents) {\n+ ERC721ProxyEvents[\"AuthorizedAddressAdded\"] = \"AuthorizedAddressAdded\";\n+ ERC721ProxyEvents[\"AuthorizedAddressRemoved\"] = \"AuthorizedAddressRemoved\";\n+})(ERC721ProxyEvents = exports.ERC721ProxyEvents || (exports.ERC721ProxyEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC721ProxyContract = /** @class */ (function (_super) {\n+ __extends(ERC721ProxyContract, _super);\n+ function ERC721ProxyContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC721Proxy', abi, address, supportedProvider, txDefaults) || this;\n+ _this.addAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorities = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorities(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target, index))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target, index) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, index, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getProxyId = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getProxyId()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getProxyId()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorized = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorized(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorized(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAuthorizedAddresses = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC721ProxyContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC721ProxyContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC721ProxyContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC721Proxy successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC721ProxyContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC721ProxyContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC721ProxyContract = ERC721ProxyContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc721_proxy.js.map\n\\ No newline at end of file" - }, - { - "sha": "5dbb46e7fde2b84299d59a08cfeb2cb3a094795b", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_proxy.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_proxy.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uGAAuG;AACvG,oCAAoC;AACpC,mCAAmC;AACnC,mDAAiD;AAEjD,mCAA2E;AAE3E,iDAA+C;AAC/C,+BAAiC;AACjC,0BAA4B;AAO5B,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,sEAAiD,CAAA;IACjD,0EAAqD,CAAA;AACzD,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAaD,0BAA0B;AAC1B,2CAA2C;AAC3C,sCAAsC;AACtC;IAAyC,uCAAY;IA2ejD,6BAAY,GAAgB,EAAE,OAAe,EAAE,iBAAoC,EAAE,UAA4B;QAAjH,YACI,kBAAM,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAEpE;QA7eM,0BAAoB,GAAG;YACpB,oBAAoB,EAA1B,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iCAC/F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAC3C,IAAI,EACJ,MAAM,CACT,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iCAC/F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAAc;gBAEd,IAAM,IAAI,GAAG,IAAkC,CAAC;gBAChD,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iBAC7G,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iCAC3F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,CAAC;gCAErE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,iBAAW,GAAG;YACX,SAAS,EAAf,UACI,OAAkB,EAClB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC,OAAO;iCACnF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;gCAE5D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,6BAAuB,GAAG;YACvB,oBAAoB,EAA1B,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iCAClG,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAC9C,IAAI,EACJ,MAAM,CACT,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iCAClG,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAAc;gBAEd,IAAM,IAAI,GAAG,IAAkC,CAAC;gBAChD,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iBAChH,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iCAC9F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;gCAExE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,WAAK,GAAG;YACL,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gCAClC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gCAE/C,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,oCAA8B,GAAG;YAC9B,oBAAoB,EAA1B,UACI,MAAc,EACd,KAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oCAClH,KAAK;iCACJ,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,IAAI,CACrD,IAAI,EACJ,MAAM,EACN,KAAK,CACR,CACJ,EAAA;;gCAZK,kBAAkB,GAAG,SAY1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAAc,EACd,KAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oCAClH,KAAK;iCACJ,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAAc,EACd,KAAgB;gBAEhB,IAAM,IAAI,GAAG,IAAkC,CAAC;gBAChD,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oBAChI,KAAK;iBACJ,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAAc,EACd,KAAgB,EAChB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oCAC9G,KAAK;iCACJ,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,iDAAiD,CAAC,CAAC;gCAEvF,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,gBAAU,GAAG;YACV,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gCACvC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;gCAEpD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,gBAAU,GAAG;YACV,SAAS,EAAf,UACI,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,CAAC,OAAO;iCAClF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;gCAE3D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,4BAAsB,GAAG;YACtB,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;gCACnD,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;gCAEhE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,uBAAiB,GAAG;YACjB,oBAAoB,EAA1B,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CACxC,IAAI,EACJ,QAAQ,CACX,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,QAAgB;gBAEhB,IAAM,IAAI,GAAG,IAAkC,CAAC;gBAChD,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iBAC5G,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,QAAgB,EAChB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC1F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;gCAElE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QA8CE,kBAAU,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;;IACnG,CAAC;IA9CmB,6CAAyB,GAA7C,UACI,QAAmD,EACnD,iBAAoC,EACpC,UAA2B;;;;gBAE3B,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACrE;gBACK,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;gBACxC,sBAAO,mBAAmB,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAG,EAAC;;;KACjF;IACmB,+BAAW,GAA/B,UACI,QAAgB,EAChB,GAAgB,EAChB,iBAAoC,EACpC,UAA2B;;;;;;wBAErB,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC/D,cAAc,GAAG,4BAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;wBAC1D,4BAAY,CAAC,sBAAsB,CACpC,cAAc,CAAC,MAAM,EACrB,EAAE,EACF,4BAAY,CAAC,kBAAkB,CAClC,CAAC;wBACI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACxC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;wBAClC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACzC,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAC;wBACnB,qBAAM,4BAAY,CAAC,2BAA2B,CACrE,EAAC,IAAI,EAAE,MAAM,EAAC,EACd,UAAU,EACV,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CACjD,EAAA;;wBAJK,kBAAkB,GAAG,SAI1B;wBACc,qBAAM,WAAW,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;wBAAnE,MAAM,GAAG,SAA0D;wBACzE,gBAAQ,CAAC,GAAG,CAAC,sBAAoB,MAAQ,CAAC,CAAC;wBACzB,qBAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAA;;wBAAlE,SAAS,GAAG,SAAsD;wBACxE,gBAAQ,CAAC,GAAG,CAAC,0CAAwC,SAAS,CAAC,eAAiB,CAAC,CAAC;wBAC5E,gBAAgB,GAAG,IAAI,mBAAmB,CAAC,GAAG,EAAE,SAAS,CAAC,eAAyB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBACjH,gBAAgB,CAAC,eAAe,GAAG,EAAE,CAAC;wBACtC,sBAAO,gBAAgB,EAAC;;;;KAC3B;IAKL,0BAAC;AAAD,CAAC,AA/eD,CAAyC,4BAAY,GA+epD,CAAC,qCAAqC;AA/e1B,kDAAmB;AAgfhC,kCAAkC\"}\n\\ No newline at end of file" - }, - { - "sha": "a0b2982b1ec695e780cf82f9faea97e806428c79", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts", - "status": "added", - "additions": 73, - "deletions": 0, - "changes": 73, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,73 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC721TokenEventArgs = ERC721TokenTransferEventArgs | ERC721TokenApprovalEventArgs | ERC721TokenApprovalForAllEventArgs;\n+export declare enum ERC721TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\",\n+ ApprovalForAll = \"ApprovalForAll\"\n+}\n+export interface ERC721TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _tokenId: BigNumber;\n+}\n+export interface ERC721TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _approved: string;\n+ _tokenId: BigNumber;\n+}\n+export interface ERC721TokenApprovalForAllEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _operator: string;\n+ _approved: boolean;\n+}\n+export declare class ERC721TokenContract extends BaseContract {\n+ getApproved: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_approved: string, _tokenId: BigNumber): string;\n+ callAsync(_approved: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom1: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ ownerOf: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ setApprovalForAll: {\n+ sendTransactionAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_operator: string, _approved: boolean): string;\n+ callAsync(_operator: string, _approved: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom2: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber, _data: string): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isApprovedForAll: {\n+ callAsync(_owner: string, _operator: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc721_token.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "e0d5dbf93f1c526afef93ad1d03e9395dc585353", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,oBAAoB,GAC1B,4BAA4B,GAC5B,4BAA4B,GAC5B,kCAAkC,CAAC;AAEzC,oBAAY,iBAAiB;IACzB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;CACpC;AAED,MAAM,WAAW,4BAA6B,SAAQ,cAAc;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,4BAA6B,SAAQ,cAAc;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,kCAAmC,SAAQ,cAAc;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACtB;AAMD,qBAAa,mBAAoB,SAAQ,YAAY;IAC1C,WAAW;;MA2BhB;IACK,OAAO;;;;;MAoFZ;IACK,YAAY;;;;;MA6FjB;IACK,iBAAiB;;;;;MA6FtB;IACK,OAAO;;MA2BZ;IACK,SAAS;;MA2Bd;IACK,iBAAiB;;;;;MAoFtB;IACK,iBAAiB;;;;;MAsGtB;IACK,gBAAgB;;MA6BrB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;WASX,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;gBAyBnB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "edbf650a701d469eaed1ddeb389fc6d26da6f71b", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js", - "status": "added", - "additions": 655, - "deletions": 0, - "changes": 655, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,655 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC721TokenEvents;\n+(function (ERC721TokenEvents) {\n+ ERC721TokenEvents[\"Transfer\"] = \"Transfer\";\n+ ERC721TokenEvents[\"Approval\"] = \"Approval\";\n+ ERC721TokenEvents[\"ApprovalForAll\"] = \"ApprovalForAll\";\n+})(ERC721TokenEvents = exports.ERC721TokenEvents || (exports.ERC721TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC721TokenContract = /** @class */ (function (_super) {\n+ __extends(ERC721TokenContract, _super);\n+ function ERC721TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC721Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.getApproved = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getApproved(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _approved, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_approved, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_approved, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom1 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom1.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.ownerOf = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.setApprovalForAll = {\n+ sendTransactionAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.setApprovalForAll.estimateGasAsync.bind(self, _operator, _approved))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_operator, _approved) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_operator, _approved, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom2 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom2.estimateGasAsync.bind(self, _from, _to, _tokenId, _data))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId, _data) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, _data, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isApprovedForAll = {\n+ callAsync: function (_owner, _operator, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [_owner,\n+ _operator\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC721TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC721TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC721Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC721TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC721TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC721TokenContract = ERC721TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc721_token.js.map\n\\ No newline at end of file" - }, - { - "sha": "468201016e2b3792020504a9a09f636ace671b33", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "8ed91de62f164f5ac83f122850cd1fa2a7d2e82b", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts", - "status": "added", - "additions": 1041, - "deletions": 0, - "changes": 1041, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,1041 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ExchangeEventArgs = ExchangeSignatureValidatorApprovalEventArgs | ExchangeFillEventArgs | ExchangeCancelEventArgs | ExchangeCancelUpToEventArgs | ExchangeAssetProxyRegisteredEventArgs;\n+export declare enum ExchangeEvents {\n+ SignatureValidatorApproval = \"SignatureValidatorApproval\",\n+ Fill = \"Fill\",\n+ Cancel = \"Cancel\",\n+ CancelUpTo = \"CancelUpTo\",\n+ AssetProxyRegistered = \"AssetProxyRegistered\"\n+}\n+export interface ExchangeSignatureValidatorApprovalEventArgs extends DecodedLogArgs {\n+ signerAddress: string;\n+ validatorAddress: string;\n+ approved: boolean;\n+}\n+export interface ExchangeFillEventArgs extends DecodedLogArgs {\n+ makerAddress: string;\n+ feeRecipientAddress: string;\n+ takerAddress: string;\n+ senderAddress: string;\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ orderHash: string;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+}\n+export interface ExchangeCancelEventArgs extends DecodedLogArgs {\n+ makerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ orderHash: string;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+}\n+export interface ExchangeCancelUpToEventArgs extends DecodedLogArgs {\n+ makerAddress: string;\n+ senderAddress: string;\n+ orderEpoch: BigNumber;\n+}\n+export interface ExchangeAssetProxyRegisteredEventArgs extends DecodedLogArgs {\n+ id: string;\n+ assetProxy: string;\n+}\n+export declare class ExchangeContract extends BaseContract {\n+ filled: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchFillOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ cancelled: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ preSign: {\n+ sendTransactionAsync(hash: string, signerAddress: string, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(hash: string, signerAddress: string, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(hash: string, signerAddress: string, signature: string): string;\n+ callAsync(hash: string, signerAddress: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ matchOrders: {\n+ sendTransactionAsync(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string, txData?: Partial): Promise;\n+ estimateGasAsync(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string): string;\n+ callAsync(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ left: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ right: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ leftMakerAssetSpreadAmount: BigNumber;\n+ }>;\n+ };\n+ fillOrderNoThrow: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ assetProxies: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchCancelOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchFillOrKillOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ cancelOrdersUpTo: {\n+ sendTransactionAsync(targetOrderEpoch: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(targetOrderEpoch: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(targetOrderEpoch: BigNumber): string;\n+ callAsync(targetOrderEpoch: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchFillOrdersNoThrow: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ getAssetProxy: {\n+ callAsync(assetProxyId: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transactions: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ fillOrKillOrder: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ setSignatureValidatorApproval: {\n+ sendTransactionAsync(validatorAddress: string, approval: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(validatorAddress: string, approval: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(validatorAddress: string, approval: boolean): string;\n+ callAsync(validatorAddress: string, approval: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowedValidators: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketSellOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ getOrdersInfo: {\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }[]>;\n+ };\n+ preSigned: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isValidSignature: {\n+ callAsync(hash: string, signerAddress: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketBuyOrdersNoThrow: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ fillOrder: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ executeTransaction: {\n+ sendTransactionAsync(salt: BigNumber, signerAddress: string, data: string, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(salt: BigNumber, signerAddress: string, data: string, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(salt: BigNumber, signerAddress: string, data: string, signature: string): string;\n+ callAsync(salt: BigNumber, signerAddress: string, data: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ registerAssetProxy: {\n+ sendTransactionAsync(assetProxy: string, txData?: Partial): Promise;\n+ estimateGasAsync(assetProxy: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetProxy: string): string;\n+ callAsync(assetProxy: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getOrderInfo: {\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }>;\n+ };\n+ cancelOrder: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ orderEpoch: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ ZRX_ASSET_DATA: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketSellOrdersNoThrow: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ EIP712_DOMAIN_HASH: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketBuyOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ currentContextAddress: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ VERSION: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _zrxAssetData: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _zrxAssetData: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=exchange.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "7fbc078b52c8c2a2a137516cb177e95df4991571", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"exchange.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/exchange.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "c184dc4b0575242456223e9e1586e331e0ae208b", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js", - "status": "added", - "additions": 2129, - "deletions": 0, - "changes": 2129, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "2e0dac0201b3f4fae77d839e91b6f5e941b9abf4", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"exchange.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/exchange.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "01fc9ce0b5740090698f702440bce26c75b8e8a4", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts", - "status": "added", - "additions": 265, - "deletions": 0, - "changes": 265, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,265 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class ForwarderContract extends BaseContract {\n+ marketBuyOrdersWithEth: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }, {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }]>;\n+ };\n+ withdrawAsset: {\n+ sendTransactionAsync(assetData: string, amount: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(assetData: string, amount: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetData: string, amount: BigNumber): string;\n+ callAsync(assetData: string, amount: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketSellOrdersWithEth: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }, {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }]>;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string, _wethAssetData: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string, _wethAssetData: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=forwarder.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "d07d03a21eda04a3e3f73b773b1fb8f52a182b70", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"forwarder.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/forwarder.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,iBAAkB,SAAQ,YAAY;IACxC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiI3B;IACK,aAAa;;;;;MAoFlB;IACK,KAAK;;MAyBV;IACK,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyH5B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAC3B,OAAO,CAAC,iBAAiB,CAAC;WAYT,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAC3B,OAAO,CAAC,iBAAiB,CAAC;gBAqCjB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "3de7ca0af0018419270e8ec3ce5384cc4aacc486", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js", - "status": "added", - "additions": 528, - "deletions": 0, - "changes": 528, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,528 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ForwarderContract = /** @class */ (function (_super) {\n+ __extends(ForwarderContract, _super);\n+ function ForwarderContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'Forwarder', abi, address, supportedProvider, txDefaults) || this;\n+ _this.marketBuyOrdersWithEth = {\n+ sendTransactionAsync: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.marketBuyOrdersWithEth.estimateGasAsync.bind(self, orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.withdrawAsset = {\n+ sendTransactionAsync: function (assetData, amount, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.withdrawAsset.estimateGasAsync.bind(self, assetData, amount))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (assetData, amount, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (assetData, amount) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (assetData, amount, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('withdrawAsset(bytes,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.marketSellOrdersWithEth = {\n+ sendTransactionAsync: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.marketSellOrdersWithEth.estimateGasAsync.bind(self, orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ console.log(txDataWithDefaults);\n+ // const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);\n+ return [2 /*return*/, '123'];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ForwarderContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _exchange, _zrxAssetData, _wethAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ForwarderContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange, _zrxAssetData, _wethAssetData)];\n+ });\n+ });\n+ };\n+ ForwarderContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _exchange, _zrxAssetData, _wethAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_exchange,\n+ _zrxAssetData,\n+ _wethAssetData\n+ ], base_contract_1.BaseContract._bigNumberToString), 3), _exchange = _a[0], _zrxAssetData = _a[1], _wethAssetData = _a[2];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_exchange,\n+ _zrxAssetData,\n+ _wethAssetData\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"Forwarder successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ForwarderContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_exchange,\n+ _zrxAssetData,\n+ _wethAssetData\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ForwarderContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ForwarderContract = ForwarderContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=forwarder.js.map\n\\ No newline at end of file" - }, - { - "sha": "977c82833f35cfd6ffd2ac35e32a5937b7d68846", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"forwarder.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/forwarder.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uGAAuG;AACvG,oCAAoC;AACpC,mCAAmC;AACnC,mDAAiD;AAEjD,mCAA2E;AAE3E,iDAA+C;AAC/C,+BAAiC;AACjC,0BAA4B;AAC5B,mCAAmC;AAGnC,0BAA0B;AAC1B,2CAA2C;AAC3C,sCAAsC;AACtC;IAAuC,qCAAY;IAwf/C,2BAAY,GAAgB,EAAE,OAAe,EAAE,iBAAoC,EAAE,UAA4B;QAAjH,YACI,kBAAM,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAElE;QA1fM,4BAAsB,GAAG;YACtB,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,MAAmC;gBAAnC,uBAAA,EAAA,WAAmC;;;;;;gCAE7B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iQAAiQ,EAAE,CAAC,MAAM;oCAClU,oBAAoB;oCACpB,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAC7C,IAAI,EACJ,MAAM,EACN,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,CACf,CACJ,EAAA;;gCAjBK,kBAAkB,GAAG,SAiB1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iQAAiQ,EAAE,CAAC,MAAM;oCAClU,oBAAoB;oCACpB,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB;gBAEpB,IAAM,IAAI,GAAG,IAAgC,CAAC;gBAC9C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,iQAAiQ,EAAE,CAAC,MAAM;oBAChV,oBAAoB;oBACpB,UAAU;oBACV,SAAS;oBACT,aAAa;oBACb,aAAa;oBACb,YAAY;iBACX,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iQAAiQ,EAAE,CAAC,MAAM;oCAC9T,oBAAoB;oCACpB,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,iQAAiQ,CAAC,CAAC;gCAEvS,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,mBAAa,GAAG;YACb,oBAAoB,EAA1B,UACI,SAAiB,EACjB,MAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,EAAE,CAAC,SAAS;oCAClG,MAAM;iCACL,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CACpC,IAAI,EACJ,SAAS,EACT,MAAM,CACT,CACJ,EAAA;;gCAZK,kBAAkB,GAAG,SAY1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,SAAiB,EACjB,MAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,EAAE,CAAC,SAAS;oCAClG,MAAM;iCACL,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,SAAiB,EACjB,MAAiB;gBAEjB,IAAM,IAAI,GAAG,IAAgC,CAAC;gBAC9C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,EAAE,CAAC,SAAS;oBAChH,MAAM;iBACL,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,SAAiB,EACjB,MAAiB,EACjB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,EAAE,CAAC,SAAS;oCAC9F,MAAM;iCACL,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;gCAEpE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,WAAK,GAAG;YACL,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gCAClC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gCAE/C,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,6BAAuB,GAAG;YACvB,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,MAAmC;gBAAnC,uBAAA,EAAA,WAAmC;;;;;;gCAE7B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0PAA0P,EAAE,CAAC,MAAM;oCAC3T,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAC9C,IAAI,EACJ,MAAM,EACN,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,CACf,CACJ,EAAA;;gCAhBK,kBAAkB,GAAG,SAgB1B;gCACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;gCAC/B,mFAAmF;gCACnF,sBAAO,KAAK,EAAC;;;;aAChB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0PAA0P,EAAE,CAAC,MAAM;oCAC3T,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB;gBAEpB,IAAM,IAAI,GAAG,IAAgC,CAAC;gBAC9C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,0PAA0P,EAAE,CAAC,MAAM;oBACzU,UAAU;oBACV,SAAS;oBACT,aAAa;oBACb,aAAa;oBACb,YAAY;iBACX,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0PAA0P,EAAE,CAAC,MAAM;oCACvT,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,0PAA0P,CAAC,CAAC;gCAEhS,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,uBAAiB,GAAG;YACjB,oBAAoB,EAA1B,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CACxC,IAAI,EACJ,QAAQ,CACX,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,QAAgB;gBAEhB,IAAM,IAAI,GAAG,IAAgC,CAAC;gBAC9C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iBAC5G,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,QAAgB,EAChB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC1F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;gCAElE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QAmEE,kBAAU,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;;IACnG,CAAC;IAnEmB,2CAAyB,GAA7C,UACI,QAAmD,EACnD,iBAAoC,EACpC,UAA2B,EACvB,SAAiB,EACjB,aAAqB,EACrB,cAAsB;;;;gBAE1B,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACrE;gBACK,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;gBACxC,sBAAO,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAC3F,aAAa,EACb,cAAc,CACb,EAAC;;;KACG;IACmB,6BAAW,GAA/B,UACI,QAAgB,EAChB,GAAgB,EAChB,iBAAoC,EACpC,UAA2B,EACvB,SAAiB,EACjB,aAAqB,EACrB,cAAsB;;;;;;wBAEpB,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC/D,cAAc,GAAG,4BAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;wBAC/D;;;+EAUC,EAVA,iBAAS,EAClB,qBAAa,EACb,sBAAc,CAQJ;wBACI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACxC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;wBAClC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS;4BAC7D,aAAa;4BACb,cAAc;yBACb,CAAC,CAAC;wBACW,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAC;wBACnB,qBAAM,4BAAY,CAAC,2BAA2B,CACrE,EAAC,IAAI,EAAE,MAAM,EAAC,EACd,UAAU,EACV,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CACjD,EAAA;;wBAJK,kBAAkB,GAAG,SAI1B;wBACc,qBAAM,WAAW,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;wBAAnE,MAAM,GAAG,SAA0D;wBACzE,gBAAQ,CAAC,GAAG,CAAC,sBAAoB,MAAQ,CAAC,CAAC;wBACzB,qBAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAA;;wBAAlE,SAAS,GAAG,SAAsD;wBACxE,gBAAQ,CAAC,GAAG,CAAC,wCAAsC,SAAS,CAAC,eAAiB,CAAC,CAAC;wBAC1E,gBAAgB,GAAG,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,eAAyB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC/G,gBAAgB,CAAC,eAAe,GAAG,CAAC,SAAS;4BACrD,aAAa;4BACb,cAAc;yBACb,CAAC;wBACM,sBAAO,gBAAgB,EAAC;;;;KAC3B;IAKL,wBAAC;AAAD,CAAC,AA5fD,CAAuC,4BAAY,GA4flD,CAAC,qCAAqC;AA5f1B,8CAAiB;AA6f9B,kCAAkC\"}\n\\ No newline at end of file" - }, - { - "sha": "c66e0b9c5415ddb266013a29325f9c86df3b5695", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts", - "status": "added", - "additions": 12, - "deletions": 0, - "changes": 12, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,12 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class IValidatorContract extends BaseContract {\n+ isValidSignature: {\n+ callAsync(hash: string, signerAddress: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=i_validator.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "d4a6c106597e7085514252c01826d29c517a0ffe", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_validator.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_validator.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE7K,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,kBAAmB,SAAQ,YAAY;IACzC,gBAAgB;;MA+BrB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;WASV,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;gBAyBlB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "ea92ccde8a8fc0e487e1a4cc1fb4e3a6a83a2199", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js", - "status": "added", - "additions": 159, - "deletions": 0, - "changes": 159, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,159 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var IValidatorContract = /** @class */ (function (_super) {\n+ __extends(IValidatorContract, _super);\n+ function IValidatorContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'IValidator', abi, address, supportedProvider, txDefaults) || this;\n+ _this.isValidSignature = {\n+ callAsync: function (hash, signerAddress, signature, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [hash,\n+ signerAddress,\n+ signature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,address,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ IValidatorContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, IValidatorContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ IValidatorContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"IValidator successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new IValidatorContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return IValidatorContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.IValidatorContract = IValidatorContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=i_validator.js.map\n\\ No newline at end of file" - }, - { - "sha": "dd64632ce1dd2ca52ddcfa7642396dacc4668e1b", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_validator.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_validator.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "1748e3800565fa9a5b4de65795a23e6aebe1da2c", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts", - "status": "added", - "additions": 12, - "deletions": 0, - "changes": 12, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,12 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class IWalletContract extends BaseContract {\n+ isValidSignature: {\n+ callAsync(hash: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=i_wallet.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "fc84b38c57d618f7efe1f9e435e4ffb1a3cc0a4f", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_wallet.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_wallet.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE7K,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,eAAgB,SAAQ,YAAY;IACtC,gBAAgB;;MA6BrB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC;WASP,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC;gBAyBf,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "273ee09ef2c75dc7db0d2b604c795ce10b8e9f41", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js", - "status": "added", - "additions": 158, - "deletions": 0, - "changes": 158, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,158 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var IWalletContract = /** @class */ (function (_super) {\n+ __extends(IWalletContract, _super);\n+ function IWalletContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'IWallet', abi, address, supportedProvider, txDefaults) || this;\n+ _this.isValidSignature = {\n+ callAsync: function (hash, signature, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isValidSignature(bytes32,bytes)', [hash,\n+ signature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ IWalletContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, IWalletContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ IWalletContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"IWallet successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new IWalletContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return IWalletContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.IWalletContract = IWalletContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=i_wallet.js.map\n\\ No newline at end of file" - }, - { - "sha": "f74c3f91963c94cade6d68940ebf25fbcdc88ee4", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_wallet.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_wallet.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "023416dc8d2ba971ae5344ccbc387a1d757bc52d", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts", - "status": "added", - "additions": 79, - "deletions": 0, - "changes": 79, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,79 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type MultiAssetProxyEventArgs = MultiAssetProxyAuthorizedAddressAddedEventArgs | MultiAssetProxyAuthorizedAddressRemovedEventArgs | MultiAssetProxyAssetProxyRegisteredEventArgs;\n+export declare enum MultiAssetProxyEvents {\n+ AuthorizedAddressAdded = \"AuthorizedAddressAdded\",\n+ AuthorizedAddressRemoved = \"AuthorizedAddressRemoved\",\n+ AssetProxyRegistered = \"AssetProxyRegistered\"\n+}\n+export interface MultiAssetProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface MultiAssetProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface MultiAssetProxyAssetProxyRegisteredEventArgs extends DecodedLogArgs {\n+ id: string;\n+ assetProxy: string;\n+}\n+export declare class MultiAssetProxyContract extends BaseContract {\n+ assetProxies: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ addAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorities: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAssetProxy: {\n+ callAsync(assetProxyId: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string, index: BigNumber): string;\n+ callAsync(target: string, index: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getProxyId: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorized: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ registerAssetProxy: {\n+ sendTransactionAsync(assetProxy: string, txData?: Partial): Promise;\n+ estimateGasAsync(assetProxy: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetProxy: string): string;\n+ callAsync(assetProxy: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAuthorizedAddresses: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=multi_asset_proxy.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "4ba97b39ff0983fff980efaaad9cccdc7690f629", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"multi_asset_proxy.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/multi_asset_proxy.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,wBAAwB,GAC9B,8CAA8C,GAC9C,gDAAgD,GAChD,4CAA4C,CAAC;AAEnD,oBAAY,qBAAqB;IAC7B,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;IACrD,oBAAoB,yBAAyB;CAChD;AAED,MAAM,WAAW,8CAA+C,SAAQ,cAAc;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gDAAiD,SAAQ,cAAc;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4CAA6C,SAAQ,cAAc;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,qBAAa,uBAAwB,SAAQ,YAAY;IAC9C,YAAY;;MA2BjB;IACK,oBAAoB;;;;;MA2EzB;IACK,WAAW;;MA2BhB;IACK,aAAa;;MA2BlB;IACK,uBAAuB;;;;;MA2E5B;IACK,KAAK;;MAyBV;IACK,8BAA8B;;;;;MAoFnC;IACK,UAAU;;MAyBf;IACK,UAAU;;MA2Bf;IACK,kBAAkB;;;;;MA2EvB;IACK,sBAAsB;;MAyB3B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,uBAAuB,CAAC;WASf,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,uBAAuB,CAAC;gBAyBvB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "486bed5e49a36f92da3ec0826da5d6ffb4219af0", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js", - "status": "added", - "additions": 700, - "deletions": 0, - "changes": 700, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,700 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var MultiAssetProxyEvents;\n+(function (MultiAssetProxyEvents) {\n+ MultiAssetProxyEvents[\"AuthorizedAddressAdded\"] = \"AuthorizedAddressAdded\";\n+ MultiAssetProxyEvents[\"AuthorizedAddressRemoved\"] = \"AuthorizedAddressRemoved\";\n+ MultiAssetProxyEvents[\"AssetProxyRegistered\"] = \"AssetProxyRegistered\";\n+})(MultiAssetProxyEvents = exports.MultiAssetProxyEvents || (exports.MultiAssetProxyEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var MultiAssetProxyContract = /** @class */ (function (_super) {\n+ __extends(MultiAssetProxyContract, _super);\n+ function MultiAssetProxyContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'MultiAssetProxy', abi, address, supportedProvider, txDefaults) || this;\n+ _this.assetProxies = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('assetProxies(bytes4)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.addAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorities = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorities(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAssetProxy = {\n+ callAsync: function (assetProxyId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAssetProxy(bytes4)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target, index))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target, index) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, index, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getProxyId = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getProxyId()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getProxyId()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorized = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorized(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorized(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.registerAssetProxy = {\n+ sendTransactionAsync: function (assetProxy, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.registerAssetProxy.estimateGasAsync.bind(self, assetProxy))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (assetProxy, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (assetProxy) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (assetProxy, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('registerAssetProxy(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAuthorizedAddresses = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ MultiAssetProxyContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, MultiAssetProxyContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ MultiAssetProxyContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"MultiAssetProxy successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new MultiAssetProxyContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return MultiAssetProxyContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.MultiAssetProxyContract = MultiAssetProxyContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=multi_asset_proxy.js.map\n\\ No newline at end of file" - }, - { - "sha": "12503ccfc4394128496f326fa68c00a4a85e8839", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"multi_asset_proxy.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/multi_asset_proxy.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "dcd88491840814007013fd43e65d703b06525d06", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts", - "status": "added", - "additions": 127, - "deletions": 0, - "changes": 127, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,127 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class OrderValidatorContract extends BaseContract {\n+ getOrderAndTraderInfo: {\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAddress: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }, {\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }]>;\n+ };\n+ getBalanceAndAllowance: {\n+ callAsync(target: string, assetData: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[BigNumber, BigNumber]>;\n+ };\n+ getOrdersAndTradersInfo: {\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAddresses: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }[], {\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }[]]>;\n+ };\n+ getTradersInfo: {\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAddresses: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }[]>;\n+ };\n+ getERC721TokenOwner: {\n+ callAsync(token: string, tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getBalancesAndAllowances: {\n+ callAsync(target: string, assetData: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[BigNumber[], BigNumber[]]>;\n+ };\n+ getTraderInfo: {\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAddress: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }>;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=order_validator.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "bbdb4c368c63226961beb1a03b13380a4ab22757", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"order_validator.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/order_validator.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,sBAAuB,SAAQ,YAAY;IAC7C,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6B1B;IACK,sBAAsB;;MA6B3B;IACK,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6B5B;IACK,cAAc;;;;;;;;;;;;;;;;;;;;;;;;MA6BnB;IACK,mBAAmB;;MA6BxB;IACK,wBAAwB;;MA6B7B;IACK,aAAa;;;;;;;;;;;;;;;;;;;;;;;;MA6BlB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GAC1B,OAAO,CAAC,sBAAsB,CAAC;WAWd,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GAC1B,OAAO,CAAC,sBAAsB,CAAC;gBAiCtB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "4dc6e383730c01cf9f5ca67651ea31d555d758f8", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js", - "status": "added", - "additions": 348, - "deletions": 0, - "changes": 348, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,348 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var OrderValidatorContract = /** @class */ (function (_super) {\n+ __extends(OrderValidatorContract, _super);\n+ function OrderValidatorContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'OrderValidator', abi, address, supportedProvider, txDefaults) || this;\n+ _this.getOrderAndTraderInfo = {\n+ callAsync: function (order, takerAddress, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', [order,\n+ takerAddress\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getBalanceAndAllowance = {\n+ callAsync: function (target, assetData, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getBalanceAndAllowance(address,bytes)', [target,\n+ assetData\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getBalanceAndAllowance(address,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getOrdersAndTradersInfo = {\n+ callAsync: function (orders, takerAddresses, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', [orders,\n+ takerAddresses\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTradersInfo = {\n+ callAsync: function (orders, takerAddresses, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', [orders,\n+ takerAddresses\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getERC721TokenOwner = {\n+ callAsync: function (token, tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getERC721TokenOwner(address,uint256)', [token,\n+ tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getERC721TokenOwner(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getBalancesAndAllowances = {\n+ callAsync: function (target, assetData, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getBalancesAndAllowances(address,bytes[])', [target,\n+ assetData\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getBalancesAndAllowances(address,bytes[])');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTraderInfo = {\n+ callAsync: function (order, takerAddress, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', [order,\n+ takerAddress\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ OrderValidatorContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _exchange, _zrxAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, OrderValidatorContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange, _zrxAssetData)];\n+ });\n+ });\n+ };\n+ OrderValidatorContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _exchange, _zrxAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_exchange,\n+ _zrxAssetData\n+ ], base_contract_1.BaseContract._bigNumberToString), 2), _exchange = _a[0], _zrxAssetData = _a[1];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_exchange,\n+ _zrxAssetData\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"OrderValidator successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new OrderValidatorContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_exchange,\n+ _zrxAssetData\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return OrderValidatorContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.OrderValidatorContract = OrderValidatorContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=order_validator.js.map\n\\ No newline at end of file" - }, - { - "sha": "a02c58b10df8e996b67ef092b87770c9c0317092", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"order_validator.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/order_validator.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uGAAuG;AACvG,oCAAoC;AACpC,mCAAmC;AACnC,mDAAiD;AAEjD,mCAA2E;AAE3E,iDAA+C;AAC/C,+BAAiC;AACjC,0BAA4B;AAC5B,mCAAmC;AAGnC,0BAA0B;AAC1B,2CAA2C;AAC3C,sCAAsC;AACtC;IAA4C,0CAAY;IA4QpD,gCAAY,GAAgB,EAAE,OAAe,EAAE,iBAAoC,EAAE,UAA4B;QAAjH,YACI,kBAAM,gBAAgB,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAEvE;QA9QM,2BAAqB,GAAG;YACrB,SAAS,EAAf,UACI,KAAmS,EACnS,YAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAqC,CAAC;gCAC7C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,8HAA8H,EAAE,CAAC,KAAK;oCAC1L,YAAY;iCACX,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,8HAA8H,CAAC,CAAC;gCAEpK,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,4BAAsB,GAAG;YACtB,SAAS,EAAf,UACI,MAAc,EACd,SAAiB,EACjB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAqC,CAAC;gCAC7C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,CAAC,MAAM;oCACpG,SAAS;iCACR,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,uCAAuC,CAAC,CAAC;gCAE7E,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,6BAAuB,GAAG;YACvB,SAAS,EAAf,UACI,MAA2S,EAC3S,cAAwB,EACxB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAqC,CAAC;gCAC7C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oIAAoI,EAAE,CAAC,MAAM;oCACjM,cAAc;iCACb,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,oIAAoI,CAAC,CAAC;gCAE1K,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,oBAAc,GAAG;YACd,SAAS,EAAf,UACI,MAA2S,EAC3S,cAAwB,EACxB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAqC,CAAC;gCAC7C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2HAA2H,EAAE,CAAC,MAAM;oCACxL,cAAc;iCACb,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,2HAA2H,CAAC,CAAC;gCAEjK,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,yBAAmB,GAAG;YACnB,SAAS,EAAf,UACI,KAAa,EACb,OAAkB,EAClB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAqC,CAAC;gCAC7C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,sCAAsC,EAAE,CAAC,KAAK;oCAClG,OAAO;iCACN,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,sCAAsC,CAAC,CAAC;gCAE5E,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,8BAAwB,GAAG;YACxB,SAAS,EAAf,UACI,MAAc,EACd,SAAmB,EACnB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAqC,CAAC;gCAC7C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2CAA2C,EAAE,CAAC,MAAM;oCACxG,SAAS;iCACR,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,2CAA2C,CAAC,CAAC;gCAEjF,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,mBAAa,GAAG;YACb,SAAS,EAAf,UACI,KAAmS,EACnS,YAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAqC,CAAC;gCAC7C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,sHAAsH,EAAE,CAAC,KAAK;oCAClL,YAAY;iCACX,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,sHAAsH,CAAC,CAAC;gCAE5J,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QA4DE,kBAAU,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;;IACnG,CAAC;IA5DmB,gDAAyB,GAA7C,UACI,QAAmD,EACnD,iBAAoC,EACpC,UAA2B,EACvB,SAAiB,EACjB,aAAqB;;;;gBAEzB,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACrE;gBACK,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;gBACxC,sBAAO,sBAAsB,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAChG,aAAa,CACZ,EAAC;;;KACG;IACmB,kCAAW,GAA/B,UACI,QAAgB,EAChB,GAAgB,EAChB,iBAAoC,EACpC,UAA2B,EACvB,SAAiB,EACjB,aAAqB;;;;;;wBAEnB,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC/D,cAAc,GAAG,4BAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;wBAC/D;;+EAQC,EARA,iBAAS,EAClB,qBAAa,CAOH;wBACI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACxC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;wBAClC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS;4BAC7D,aAAa;yBACZ,CAAC,CAAC;wBACW,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAC;wBACnB,qBAAM,4BAAY,CAAC,2BAA2B,CACrE,EAAC,IAAI,EAAE,MAAM,EAAC,EACd,UAAU,EACV,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CACjD,EAAA;;wBAJK,kBAAkB,GAAG,SAI1B;wBACc,qBAAM,WAAW,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;wBAAnE,MAAM,GAAG,SAA0D;wBACzE,gBAAQ,CAAC,GAAG,CAAC,sBAAoB,MAAQ,CAAC,CAAC;wBACzB,qBAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAA;;wBAAlE,SAAS,GAAG,SAAsD;wBACxE,gBAAQ,CAAC,GAAG,CAAC,6CAA2C,SAAS,CAAC,eAAiB,CAAC,CAAC;wBAC/E,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,GAAG,EAAE,SAAS,CAAC,eAAyB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBACpH,gBAAgB,CAAC,eAAe,GAAG,CAAC,SAAS;4BACrD,aAAa;yBACZ,CAAC;wBACM,sBAAO,gBAAgB,EAAC;;;;KAC3B;IAKL,6BAAC;AAAD,CAAC,AAhRD,CAA4C,4BAAY,GAgRvD,CAAC,qCAAqC;AAhR1B,wDAAsB;AAiRnC,kCAAkC\"}\n\\ No newline at end of file" - }, - { - "sha": "2438f6cd1670ad5a67a6189d68a77347b142e9ac", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts", - "status": "added", - "additions": 83, - "deletions": 0, - "changes": 83, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,83 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type WETH9EventArgs = WETH9ApprovalEventArgs | WETH9TransferEventArgs | WETH9DepositEventArgs | WETH9WithdrawalEventArgs;\n+export declare enum WETH9Events {\n+ Approval = \"Approval\",\n+ Transfer = \"Transfer\",\n+ Deposit = \"Deposit\",\n+ Withdrawal = \"Withdrawal\"\n+}\n+export interface WETH9ApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export interface WETH9TransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface WETH9DepositEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _value: BigNumber;\n+}\n+export interface WETH9WithdrawalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _value: BigNumber;\n+}\n+export declare class WETH9Contract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(guy: string, wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(guy: string, wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(guy: string, wad: BigNumber): string;\n+ callAsync(guy: string, wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(src: string, dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(src: string, dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(src: string, dst: string, wad: BigNumber): string;\n+ callAsync(src: string, dst: string, wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ withdraw: {\n+ sendTransactionAsync(wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(wad: BigNumber): string;\n+ callAsync(wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ decimals: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(dst: string, wad: BigNumber): string;\n+ callAsync(dst: string, wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ deposit: {\n+ sendTransactionAsync(txData?: Partial): Promise;\n+ estimateGasAsync(txData?: Partial): Promise;\n+ getABIEncodedTransactionData(): string;\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=weth9.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "520ff691fd0ddc2c622cba31cf6861191e7cab06", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"weth9.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/weth9.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,cAAc,GACpB,sBAAsB,GACtB,sBAAsB,GACtB,qBAAqB,GACrB,wBAAwB,CAAC;AAE/B,oBAAY,WAAW;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,UAAU,eAAe;CAC5B;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,aAAc,SAAQ,YAAY;IACpC,IAAI;;MAyBT;IACK,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,QAAQ;;;;;MA2Eb;IACK,QAAQ;;MAyBb;IACK,SAAS;;MA2Bd;IACK,MAAM;;MAyBX;IACK,QAAQ;;;;;MAoFb;IACK,OAAO;;;;;MAkEZ;IACK,SAAS;;MA6Bd;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;WASL,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;gBAyBb,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "a340bf0a7ddef0667a58e500bd3e9ab1e6979155", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js", - "status": "added", - "additions": 682, - "deletions": 0, - "changes": 682, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,682 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var WETH9Events;\n+(function (WETH9Events) {\n+ WETH9Events[\"Approval\"] = \"Approval\";\n+ WETH9Events[\"Transfer\"] = \"Transfer\";\n+ WETH9Events[\"Deposit\"] = \"Deposit\";\n+ WETH9Events[\"Withdrawal\"] = \"Withdrawal\";\n+})(WETH9Events = exports.WETH9Events || (exports.WETH9Events = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var WETH9Contract = /** @class */ (function (_super) {\n+ __extends(WETH9Contract, _super);\n+ function WETH9Contract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'WETH9', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (guy, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, guy, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (guy, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (guy, wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (guy, wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (src, dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, src, dst, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (src, dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (src, dst, wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (src, dst, wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.withdraw = {\n+ sendTransactionAsync: function (wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.withdraw.estimateGasAsync.bind(self, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('withdraw(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.decimals = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('decimals()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('decimals()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, dst, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (dst, wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (dst, wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.deposit = {\n+ sendTransactionAsync: function (txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('deposit()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.deposit.estimateGasAsync.bind(self))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('deposit()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function () {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('deposit()', []);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('deposit()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('deposit()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (index_0, index_1, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [index_0,\n+ index_1\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ WETH9Contract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, WETH9Contract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ WETH9Contract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"WETH9 successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new WETH9Contract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return WETH9Contract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.WETH9Contract = WETH9Contract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=weth9.js.map\n\\ No newline at end of file" - }, - { - "sha": "03ea0f0acd458930b8fd0008c4b2324fc270fc3a", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"weth9.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/weth9.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "845352b288ecf542ef193c8544e1c06a51c026d3", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts", - "status": "added", - "additions": 61, - "deletions": 0, - "changes": 61, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,61 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ZRXTokenEventArgs = ZRXTokenTransferEventArgs | ZRXTokenApprovalEventArgs;\n+export declare enum ZRXTokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\"\n+}\n+export interface ZRXTokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface ZRXTokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export declare class ZRXTokenContract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_spender: string, _value: BigNumber): string;\n+ callAsync(_spender: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string;\n+ callAsync(_from: string, _to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ decimals: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _value: BigNumber): string;\n+ callAsync(_to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(_owner: string, _spender: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=zrx_token.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "0c6d583f91c8aa44f81ae567df770df17d90308e", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"zrx_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/zrx_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,iBAAiB,GACvB,yBAAyB,GACzB,yBAAyB,CAAC;AAEhC,oBAAY,cAAc;IACtB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACxB;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,gBAAiB,SAAQ,YAAY;IACvC,IAAI;;MAyBT;IACK,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,QAAQ;;MAyBb;IACK,SAAS;;MA2Bd;IACK,MAAM;;MAyBX;IACK,QAAQ;;;;;MAoFb;IACK,SAAS;;MA6Bd;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,gBAAgB,CAAC;WASR,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,gBAAgB,CAAC;gBAyBhB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" - }, - { - "sha": "3ff660ea5f8fc1ad8a9a83593c219fed8553b56d", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js", - "status": "added", - "additions": 534, - "deletions": 0, - "changes": 534, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,534 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ZRXTokenEvents;\n+(function (ZRXTokenEvents) {\n+ ZRXTokenEvents[\"Transfer\"] = \"Transfer\";\n+ ZRXTokenEvents[\"Approval\"] = \"Approval\";\n+})(ZRXTokenEvents = exports.ZRXTokenEvents || (exports.ZRXTokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ZRXTokenContract = /** @class */ (function (_super) {\n+ __extends(ZRXTokenContract, _super);\n+ function ZRXTokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ZRXToken', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _spender, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_spender, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_spender, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.decimals = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('decimals()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('decimals()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (_owner, _spender, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner,\n+ _spender\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ZRXTokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ZRXTokenContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ZRXTokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ZRXToken successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ZRXTokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ZRXTokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ZRXTokenContract = ZRXTokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=zrx_token.js.map\n\\ No newline at end of file" - }, - { - "sha": "f659acb28f52bf725aa3d9968e01203b72ce2298", - "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"zrx_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/zrx_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "9d24af4fe739f4ba39fc6d3a1a1832a8a937700e", - "filename": "packages/abi-gen-wrappers/lib/src/index.d.ts", - "status": "added", - "additions": 17, - "deletions": 0, - "changes": 17, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,17 @@\n+export * from './generated-wrappers/asset_proxy_owner';\n+export * from './generated-wrappers/dummy_erc20_token';\n+export * from './generated-wrappers/dummy_erc721_token';\n+export * from './generated-wrappers/dutch_auction';\n+export * from './generated-wrappers/erc20_proxy';\n+export * from './generated-wrappers/erc20_token';\n+export * from './generated-wrappers/erc721_proxy';\n+export * from './generated-wrappers/erc721_token';\n+export * from './generated-wrappers/exchange';\n+export * from './generated-wrappers/forwarder';\n+export * from './generated-wrappers/i_validator';\n+export * from './generated-wrappers/i_wallet';\n+export * from './generated-wrappers/multi_asset_proxy';\n+export * from './generated-wrappers/order_validator';\n+export * from './generated-wrappers/weth9';\n+export * from './generated-wrappers/zrx_token';\n+//# sourceMappingURL=index.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "9d3866457f84ba691c9e6f2a693a58e55d429c04", - "filename": "packages/abi-gen-wrappers/lib/src/index.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC\"}\n\\ No newline at end of file" - }, - { - "sha": "75d38839c9772efa56c66da7d719b22cbdc51f1c", - "filename": "packages/abi-gen-wrappers/lib/src/index.js", - "status": "added", - "additions": 22, - "deletions": 0, - "changes": 22, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,22 @@\n+\"use strict\";\n+function __export(m) {\n+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n+}\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+__export(require(\"./generated-wrappers/asset_proxy_owner\"));\n+__export(require(\"./generated-wrappers/dummy_erc20_token\"));\n+__export(require(\"./generated-wrappers/dummy_erc721_token\"));\n+__export(require(\"./generated-wrappers/dutch_auction\"));\n+__export(require(\"./generated-wrappers/erc20_proxy\"));\n+__export(require(\"./generated-wrappers/erc20_token\"));\n+__export(require(\"./generated-wrappers/erc721_proxy\"));\n+__export(require(\"./generated-wrappers/erc721_token\"));\n+__export(require(\"./generated-wrappers/exchange\"));\n+__export(require(\"./generated-wrappers/forwarder\"));\n+__export(require(\"./generated-wrappers/i_validator\"));\n+__export(require(\"./generated-wrappers/i_wallet\"));\n+__export(require(\"./generated-wrappers/multi_asset_proxy\"));\n+__export(require(\"./generated-wrappers/order_validator\"));\n+__export(require(\"./generated-wrappers/weth9\"));\n+__export(require(\"./generated-wrappers/zrx_token\"));\n+//# sourceMappingURL=index.js.map\n\\ No newline at end of file" - }, - { - "sha": "fd2261e4ef385cbdd4fec7f03c4a4dd24d17e895", - "filename": "packages/abi-gen-wrappers/lib/src/index.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\";;;;;AAAA,4DAAuD;AACvD,4DAAuD;AACvD,6DAAwD;AACxD,wDAAmD;AACnD,sDAAiD;AACjD,sDAAiD;AACjD,uDAAkD;AAClD,uDAAkD;AAClD,mDAA8C;AAC9C,oDAA+C;AAC/C,sDAAiD;AACjD,mDAA8C;AAC9C,4DAAuD;AACvD,0DAAqD;AACrD,gDAA2C;AAC3C,oDAA+C\"}\n\\ No newline at end of file" - }, - { - "sha": "f820c27860973d071098ec41cd38b994a41e8a7b", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -1489,7 +1489,7 @@ _secondsTimeLocked\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('AssetProxyOwner', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('AssetProxyOwner', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "88e2a4bb6d0181b268f67eb8bd243e528d164a9f", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -823,7 +823,7 @@ _totalSupply\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('DummyERC20Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('DummyERC20Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "fc01d4c8a0a3a3a2fcee606bd84310d27d635412", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -1001,7 +1001,7 @@ _symbol\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('DummyERC721Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('DummyERC721Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "36c9816ada0af8225e54c6f108e3c41c97169643", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -245,7 +245,7 @@ export class DutchAuctionContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('DutchAuction', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('DutchAuction', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "4bf1cc8240ce9fa9699e792150340f9a6edd4657", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -525,7 +525,7 @@ export class ERC20ProxyContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC20Proxy', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC20Proxy', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "737f204b7b6833b5168dadb6e5144bdd2aac1f74", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -428,7 +428,7 @@ export class ERC20TokenContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC20Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC20Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "a8ce0eebc947c8eba0a419dd81fd19b974fbf9da", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -525,7 +525,7 @@ export class ERC721ProxyContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC721Proxy', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC721Proxy', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "666479e1f1fa0d0227233b4a1ecce249b2a4db1a", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -663,7 +663,7 @@ export class ERC721TokenContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC721Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC721Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "986f02617395b05748fe8905620714cdb3dd5501", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -2274,7 +2274,7 @@ export class ExchangeContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('Exchange', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('Exchange', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "2e3ba60ffedb1a44fb762e6623dacbdaaa41ff0f", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts", - "status": "modified", - "additions": 4, - "deletions": 3, - "changes": 7, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -291,8 +291,9 @@ export class ForwarderContract extends BaseContract {\n feeRecipient\n ),\n );\n- const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);\n- return txHash;\n+ console.log(txDataWithDefaults)\n+ // const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);\n+ return '123';\n },\n async estimateGasAsync(\n orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,\n@@ -518,7 +519,7 @@ _wethAssetData\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('Forwarder', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('Forwarder', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "4cadd8ed25aab04ebc500cea4bd66b7aa63d7924", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -91,7 +91,7 @@ export class IValidatorContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('IValidator', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('IValidator', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "491028c2320619ecba35479fe3d0c3f2cbd7388e", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -89,7 +89,7 @@ export class IWalletContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('IWallet', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('IWallet', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "76d66120b8aa4c846ccf16fcac22040389e58ad0", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -664,7 +664,7 @@ export class MultiAssetProxyContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('MultiAssetProxy', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('MultiAssetProxy', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "5829909e3b1037c8382e6c96c9f8ba81aa09ff65", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -283,7 +283,7 @@ _zrxAssetData\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('OrderValidator', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('OrderValidator', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "0f528919f09bc6e947e298f6c8724da7adb628e3", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -663,7 +663,7 @@ export class WETH9Contract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('WETH9', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('WETH9', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "f89c246d656fd98fea4b9c074adcefb22fad012d", - "filename": "packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts", - "status": "modified", - "additions": 1, - "deletions": 1, - "changes": 2, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -506,7 +506,7 @@ export class ZRXTokenContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ZRXToken', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ZRXToken', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" - }, - { - "sha": "f10e9ca4639e6957f58f06a33f9ebad881405b15", - "filename": "packages/asset-buyer/lib/src/asset_buyer.d.ts", - "status": "added", - "additions": 109, - "deletions": 0, - "changes": 109, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,109 @@\n+import { SignedOrder } from '@0x/order-utils';\n+import { BigNumber } from '@0x/utils';\n+import { SupportedProvider, ZeroExProvider } from 'ethereum-types';\n+import { AssetBuyerOpts, BuyQuote, BuyQuoteExecutionOpts, BuyQuoteRequestOpts, LiquidityForAssetData, LiquidityRequestOpts, OrderProvider, OrdersAndFillableAmounts } from './types';\n+export declare class AssetBuyer {\n+ readonly provider: ZeroExProvider;\n+ readonly orderProvider: OrderProvider;\n+ readonly networkId: number;\n+ readonly orderRefreshIntervalMs: number;\n+ readonly expiryBufferSeconds: number;\n+ private readonly _contractWrappers;\n+ private readonly _ordersEntryMap;\n+ /**\n+ * Instantiates a new AssetBuyer instance given existing liquidity in the form of orders and feeOrders.\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orders A non-empty array of objects that conform to SignedOrder. All orders must have the same makerAssetData and takerAssetData (WETH).\n+ * @param feeOrders A array of objects that conform to SignedOrder. All orders must have the same makerAssetData (ZRX) and takerAssetData (WETH). Defaults to an empty array.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ static getAssetBuyerForProvidedOrders(supportedProvider: SupportedProvider, orders: SignedOrder[], options?: Partial): AssetBuyer;\n+ /**\n+ * Instantiates a new AssetBuyer instance given a [Standard Relayer API](https://github.com/0xProject/standard-relayer-api) endpoint\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param sraApiUrl The standard relayer API base HTTP url you would like to source orders from.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ static getAssetBuyerForStandardRelayerAPIUrl(supportedProvider: SupportedProvider, sraApiUrl: string, options?: Partial): AssetBuyer;\n+ /**\n+ * Instantiates a new AssetBuyer instance\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orderProvider An object that conforms to OrderProvider, see type for definition.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ constructor(supportedProvider: SupportedProvider, orderProvider: OrderProvider, options?: Partial);\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired assetData.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ getBuyQuoteAsync(assetData: string, assetBuyAmount: BigNumber, options?: Partial): Promise;\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired ERC20 token address.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param tokenAddress The ERC20 token address.\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ getBuyQuoteForERC20TokenAddressAsync(tokenAddress: string, assetBuyAmount: BigNumber, options?: Partial): Promise;\n+ /**\n+ * Returns information about available liquidity for an asset\n+ * Does not factor in slippage or fees\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to LiquidityForAssetData that satisfies the request. See type definition for more information.\n+ */\n+ getLiquidityForAssetDataAsync(assetData: string, options?: Partial): Promise;\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ executeBuyQuoteAsync(buyQuote: BuyQuote, options?: Partial): Promise;\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ mockExecuteBuyQuoteAsync(buyQuote: BuyQuote, options?: Partial): Promise;\n+ /**\n+ * Get the asset data of all assets that are purchaseable with ether token (wETH) in the order provider passed in at init.\n+ *\n+ * @return An array of asset data strings that can be purchased using wETH.\n+ */\n+ getAvailableAssetDatasAsync(): Promise;\n+ /**\n+ * Grab orders from the map, if there is a miss or it is time to refresh, fetch and process the orders\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param shouldForceOrderRefresh If set to true, new orders and state will be fetched instead of waiting for the next orderRefreshIntervalMs.\n+ */\n+ getOrdersAndFillableAmountsAsync(assetData: string, shouldForceOrderRefresh: boolean): Promise;\n+ /**\n+ * Get the assetData that represents the WETH token.\n+ * Will throw if WETH does not exist for the current network.\n+ */\n+ private _getEtherTokenAssetDataOrThrow;\n+ /**\n+ * Get the assetData that represents the ZRX token.\n+ * Will throw if ZRX does not exist for the current network.\n+ */\n+ private _getZrxTokenAssetDataOrThrow;\n+}\n+//# sourceMappingURL=asset_buyer.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "8f86a825a3c8892d4a94a67a2c8fd2b8b94ae0be", - "filename": "packages/asset-buyer/lib/src/asset_buyer.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_buyer.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/asset_buyer.ts\"],\"names\":[],\"mappings\":\"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAiB,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMnE,OAAO,EAEH,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EAC3B,MAAM,SAAS,CAAC;AAajB,qBAAa,UAAU;IACnB,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,sBAAsB,EAAE,MAAM,CAAC;IAC/C,SAAgB,mBAAmB,EAAE,MAAM,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAC9D;;;;;;;;OAQG;WACW,8BAA8B,CACxC,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,WAAW,EAAE,EACrB,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GACtC,UAAU;IAOb;;;;;;;OAOG;WACW,qCAAqC,CAC/C,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GACtC,UAAU;IAQb;;;;;;;OAOG;gBAEC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM;IAqBzC;;;;;;;;OAQG;IACU,gBAAgB,CACzB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,SAAS,EACzB,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC3C,OAAO,CAAC,QAAQ,CAAC;IAmCpB;;;;;;;;OAQG;IACU,oCAAoC,CAC7C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,SAAS,EACzB,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC3C,OAAO,CAAC,QAAQ,CAAC;IAOpB;;;;;;;OAOG;IACU,6BAA6B,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAC5C,OAAO,CAAC,qBAAqB,CAAC;IAwBjC;;;;;;OAMG;IACU,oBAAoB,CAC7B,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC7C,OAAO,CAAC,MAAM,CAAC;IA+Dd;;;;;;GAMD;IACU,wBAAwB,CACjC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC7C,OAAO,CAAC,MAAM,CAAC;IA+DlB;;;;OAIG;IACU,2BAA2B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7D;;;;OAIG;IACU,gCAAgC,CACzC,SAAS,EAAE,MAAM,EACjB,uBAAuB,EAAE,OAAO,GACjC,OAAO,CAAC,wBAAwB,CAAC;IA8CpC;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAGtC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;CAGvC\"}\n\\ No newline at end of file" - }, - { - "sha": "893ed51519527120840a98c0536996958c392d1c", - "filename": "packages/asset-buyer/lib/src/asset_buyer.js", - "status": "added", - "additions": 457, - "deletions": 0, - "changes": 457, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,457 @@\n+\"use strict\";\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var contract_wrappers_1 = require(\"@0x/contract-wrappers\");\n+var json_schemas_1 = require(\"@0x/json-schemas\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var _ = require(\"lodash\");\n+var constants_1 = require(\"./constants\");\n+var basic_order_provider_1 = require(\"./order_providers/basic_order_provider\");\n+var standard_relayer_api_order_provider_1 = require(\"./order_providers/standard_relayer_api_order_provider\");\n+var types_1 = require(\"./types\");\n+var assert_1 = require(\"./utils/assert\");\n+var asset_data_utils_1 = require(\"./utils/asset_data_utils\");\n+var buy_quote_calculator_1 = require(\"./utils/buy_quote_calculator\");\n+var calculate_liquidity_1 = require(\"./utils/calculate_liquidity\");\n+var order_provider_response_processor_1 = require(\"./utils/order_provider_response_processor\");\n+var AssetBuyer = /** @class */ (function () {\n+ /**\n+ * Instantiates a new AssetBuyer instance\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orderProvider An object that conforms to OrderProvider, see type for definition.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ function AssetBuyer(supportedProvider, orderProvider, options) {\n+ if (options === void 0) { options = {}; }\n+ // cache of orders along with the time last updated keyed by assetData\n+ this._ordersEntryMap = {};\n+ var _a = _.merge({}, constants_1.constants.DEFAULT_ASSET_BUYER_OPTS, options), networkId = _a.networkId, orderRefreshIntervalMs = _a.orderRefreshIntervalMs, expiryBufferSeconds = _a.expiryBufferSeconds;\n+ var provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ assert_1.assert.isValidOrderProvider('orderProvider', orderProvider);\n+ assert_1.assert.isNumber('networkId', networkId);\n+ assert_1.assert.isNumber('orderRefreshIntervalMs', orderRefreshIntervalMs);\n+ assert_1.assert.isNumber('expiryBufferSeconds', expiryBufferSeconds);\n+ this.provider = provider;\n+ this.orderProvider = orderProvider;\n+ this.networkId = networkId;\n+ this.orderRefreshIntervalMs = orderRefreshIntervalMs;\n+ this.expiryBufferSeconds = expiryBufferSeconds;\n+ this._contractWrappers = new contract_wrappers_1.ContractWrappers(this.provider, {\n+ networkId: networkId,\n+ });\n+ }\n+ /**\n+ * Instantiates a new AssetBuyer instance given existing liquidity in the form of orders and feeOrders.\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orders A non-empty array of objects that conform to SignedOrder. All orders must have the same makerAssetData and takerAssetData (WETH).\n+ * @param feeOrders A array of objects that conform to SignedOrder. All orders must have the same makerAssetData (ZRX) and takerAssetData (WETH). Defaults to an empty array.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ AssetBuyer.getAssetBuyerForProvidedOrders = function (supportedProvider, orders, options) {\n+ if (options === void 0) { options = {}; }\n+ assert_1.assert.doesConformToSchema('orders', orders, json_schemas_1.schemas.signedOrdersSchema);\n+ assert_1.assert.assert(orders.length !== 0, \"Expected orders to contain at least one order\");\n+ var orderProvider = new basic_order_provider_1.BasicOrderProvider(orders);\n+ var assetBuyer = new AssetBuyer(supportedProvider, orderProvider, options);\n+ return assetBuyer;\n+ };\n+ /**\n+ * Instantiates a new AssetBuyer instance given a [Standard Relayer API](https://github.com/0xProject/standard-relayer-api) endpoint\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param sraApiUrl The standard relayer API base HTTP url you would like to source orders from.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ AssetBuyer.getAssetBuyerForStandardRelayerAPIUrl = function (supportedProvider, sraApiUrl, options) {\n+ if (options === void 0) { options = {}; }\n+ var provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ assert_1.assert.isWebUri('sraApiUrl', sraApiUrl);\n+ var networkId = options.networkId || constants_1.constants.DEFAULT_ASSET_BUYER_OPTS.networkId;\n+ var orderProvider = new standard_relayer_api_order_provider_1.StandardRelayerAPIOrderProvider(sraApiUrl, networkId);\n+ var assetBuyer = new AssetBuyer(provider, orderProvider, options);\n+ return assetBuyer;\n+ };\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired assetData.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ AssetBuyer.prototype.getBuyQuoteAsync = function (assetData, assetBuyAmount, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, feePercentage, shouldForceOrderRefresh, slippagePercentage, zrxTokenAssetData, isMakerAssetZrxToken, _b, ordersAndFillableAmounts, feeOrdersAndFillableAmounts, buyQuote;\n+ return __generator(this, function (_c) {\n+ switch (_c.label) {\n+ case 0:\n+ _a = _.merge({}, constants_1.constants.DEFAULT_BUY_QUOTE_REQUEST_OPTS, options), feePercentage = _a.feePercentage, shouldForceOrderRefresh = _a.shouldForceOrderRefresh, slippagePercentage = _a.slippagePercentage;\n+ assert_1.assert.isString('assetData', assetData);\n+ assert_1.assert.isBigNumber('assetBuyAmount', assetBuyAmount);\n+ assert_1.assert.isValidPercentage('feePercentage', feePercentage);\n+ assert_1.assert.isBoolean('shouldForceOrderRefresh', shouldForceOrderRefresh);\n+ assert_1.assert.isNumber('slippagePercentage', slippagePercentage);\n+ zrxTokenAssetData = this._getZrxTokenAssetDataOrThrow();\n+ isMakerAssetZrxToken = assetData === zrxTokenAssetData;\n+ return [4 /*yield*/, Promise.all([\n+ this.getOrdersAndFillableAmountsAsync(assetData, shouldForceOrderRefresh),\n+ isMakerAssetZrxToken\n+ ? Promise.resolve(constants_1.constants.EMPTY_ORDERS_AND_FILLABLE_AMOUNTS)\n+ : this.getOrdersAndFillableAmountsAsync(zrxTokenAssetData, shouldForceOrderRefresh),\n+ shouldForceOrderRefresh,\n+ ])];\n+ case 1:\n+ _b = __read.apply(void 0, [_c.sent(), 2]), ordersAndFillableAmounts = _b[0], feeOrdersAndFillableAmounts = _b[1];\n+ if (ordersAndFillableAmounts.orders.length === 0) {\n+ throw new Error(types_1.AssetBuyerError.AssetUnavailable + \": For assetData \" + assetData);\n+ }\n+ buyQuote = buy_quote_calculator_1.buyQuoteCalculator.calculate(ordersAndFillableAmounts, feeOrdersAndFillableAmounts, assetBuyAmount, feePercentage, slippagePercentage, isMakerAssetZrxToken);\n+ return [2 /*return*/, buyQuote];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired ERC20 token address.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param tokenAddress The ERC20 token address.\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ AssetBuyer.prototype.getBuyQuoteForERC20TokenAddressAsync = function (tokenAddress, assetBuyAmount, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var assetData, buyQuote;\n+ return __generator(this, function (_a) {\n+ assert_1.assert.isETHAddressHex('tokenAddress', tokenAddress);\n+ assert_1.assert.isBigNumber('assetBuyAmount', assetBuyAmount);\n+ assetData = asset_data_utils_1.assetDataUtils.encodeERC20AssetData(tokenAddress);\n+ buyQuote = this.getBuyQuoteAsync(assetData, assetBuyAmount, options);\n+ return [2 /*return*/, buyQuote];\n+ });\n+ });\n+ };\n+ /**\n+ * Returns information about available liquidity for an asset\n+ * Does not factor in slippage or fees\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to LiquidityForAssetData that satisfies the request. See type definition for more information.\n+ */\n+ AssetBuyer.prototype.getLiquidityForAssetDataAsync = function (assetData, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var shouldForceOrderRefresh, assetPairs, etherTokenAssetData, ordersAndFillableAmounts;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ shouldForceOrderRefresh = options.shouldForceOrderRefresh !== undefined ? options.shouldForceOrderRefresh : false;\n+ assert_1.assert.isString('assetData', assetData);\n+ asset_data_utils_1.assetDataUtils.decodeAssetDataOrThrow(assetData);\n+ assert_1.assert.isBoolean('options.shouldForceOrderRefresh', shouldForceOrderRefresh);\n+ return [4 /*yield*/, this.orderProvider.getAvailableMakerAssetDatasAsync(assetData)];\n+ case 1:\n+ assetPairs = _a.sent();\n+ etherTokenAssetData = this._getEtherTokenAssetDataOrThrow();\n+ if (!assetPairs.includes(etherTokenAssetData)) {\n+ return [2 /*return*/, {\n+ tokensAvailableInBaseUnits: new utils_1.BigNumber(0),\n+ ethValueAvailableInWei: new utils_1.BigNumber(0),\n+ }];\n+ }\n+ return [4 /*yield*/, this.getOrdersAndFillableAmountsAsync(assetData, shouldForceOrderRefresh)];\n+ case 2:\n+ ordersAndFillableAmounts = _a.sent();\n+ return [2 /*return*/, calculate_liquidity_1.calculateLiquidity(ordersAndFillableAmounts)];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ AssetBuyer.prototype.executeBuyQuoteAsync = function (buyQuote, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, ethAmount, takerAddress, feeRecipient, gasLimit, gasPrice, orders, feeOrders, feePercentage, assetBuyAmount, worstCaseQuoteInfo, finalTakerAddress, web3Wrapper, availableAddresses, firstAvailableAddress, txHash, err_1;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ _a = _.merge({}, constants_1.constants.DEFAULT_BUY_QUOTE_EXECUTION_OPTS, options), ethAmount = _a.ethAmount, takerAddress = _a.takerAddress, feeRecipient = _a.feeRecipient, gasLimit = _a.gasLimit, gasPrice = _a.gasPrice;\n+ assert_1.assert.isValidBuyQuote('buyQuote', buyQuote);\n+ if (!_.isUndefined(ethAmount)) {\n+ assert_1.assert.isBigNumber('ethAmount', ethAmount);\n+ }\n+ if (!_.isUndefined(takerAddress)) {\n+ assert_1.assert.isETHAddressHex('takerAddress', takerAddress);\n+ }\n+ assert_1.assert.isETHAddressHex('feeRecipient', feeRecipient);\n+ if (!_.isUndefined(gasLimit)) {\n+ assert_1.assert.isNumber('gasLimit', gasLimit);\n+ }\n+ if (!_.isUndefined(gasPrice)) {\n+ assert_1.assert.isBigNumber('gasPrice', gasPrice);\n+ }\n+ orders = buyQuote.orders, feeOrders = buyQuote.feeOrders, feePercentage = buyQuote.feePercentage, assetBuyAmount = buyQuote.assetBuyAmount, worstCaseQuoteInfo = buyQuote.worstCaseQuoteInfo;\n+ if (!!_.isUndefined(takerAddress)) return [3 /*break*/, 1];\n+ finalTakerAddress = takerAddress;\n+ return [3 /*break*/, 3];\n+ case 1:\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(this.provider);\n+ return [4 /*yield*/, web3Wrapper.getAvailableAddressesAsync()];\n+ case 2:\n+ availableAddresses = _b.sent();\n+ firstAvailableAddress = _.head(availableAddresses);\n+ if (!_.isUndefined(firstAvailableAddress)) {\n+ finalTakerAddress = firstAvailableAddress;\n+ }\n+ else {\n+ throw new Error(types_1.AssetBuyerError.NoAddressAvailable);\n+ }\n+ _b.label = 3;\n+ case 3:\n+ _b.trys.push([3, 5, , 6]);\n+ return [4 /*yield*/, this._contractWrappers.forwarder.marketBuyOrdersWithEthAsync(orders, assetBuyAmount, finalTakerAddress, ethAmount || worstCaseQuoteInfo.totalEthAmount, feeOrders, feePercentage, feeRecipient, {\n+ gasLimit: gasLimit,\n+ gasPrice: gasPrice,\n+ shouldValidate: true,\n+ })];\n+ case 4:\n+ txHash = _b.sent();\n+ return [2 /*return*/, txHash];\n+ case 5:\n+ err_1 = _b.sent();\n+ if (_.includes(err_1.message, contract_wrappers_1.ContractWrappersError.SignatureRequestDenied)) {\n+ throw new Error(types_1.AssetBuyerError.SignatureRequestDenied);\n+ }\n+ else if (_.includes(err_1.message, contract_wrappers_1.ForwarderWrapperError.CompleteFillFailed)) {\n+ throw new Error(types_1.AssetBuyerError.TransactionValueTooLow);\n+ }\n+ else {\n+ throw err_1;\n+ }\n+ return [3 /*break*/, 6];\n+ case 6: return [2 /*return*/];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ AssetBuyer.prototype.mockExecuteBuyQuoteAsync = function (buyQuote, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, ethAmount, takerAddress, feeRecipient, gasLimit, gasPrice, orders, feeOrders, feePercentage, assetBuyAmount, worstCaseQuoteInfo, finalTakerAddress, web3Wrapper, availableAddresses, firstAvailableAddress, txHash, err_2;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ _a = _.merge({}, constants_1.constants.DEFAULT_BUY_QUOTE_EXECUTION_OPTS, options), ethAmount = _a.ethAmount, takerAddress = _a.takerAddress, feeRecipient = _a.feeRecipient, gasLimit = _a.gasLimit, gasPrice = _a.gasPrice;\n+ assert_1.assert.isValidBuyQuote('buyQuote', buyQuote);\n+ if (!_.isUndefined(ethAmount)) {\n+ assert_1.assert.isBigNumber('ethAmount', ethAmount);\n+ }\n+ if (!_.isUndefined(takerAddress)) {\n+ assert_1.assert.isETHAddressHex('takerAddress', takerAddress);\n+ }\n+ assert_1.assert.isETHAddressHex('feeRecipient', feeRecipient);\n+ if (!_.isUndefined(gasLimit)) {\n+ assert_1.assert.isNumber('gasLimit', gasLimit);\n+ }\n+ if (!_.isUndefined(gasPrice)) {\n+ assert_1.assert.isBigNumber('gasPrice', gasPrice);\n+ }\n+ orders = buyQuote.orders, feeOrders = buyQuote.feeOrders, feePercentage = buyQuote.feePercentage, assetBuyAmount = buyQuote.assetBuyAmount, worstCaseQuoteInfo = buyQuote.worstCaseQuoteInfo;\n+ if (!!_.isUndefined(takerAddress)) return [3 /*break*/, 1];\n+ finalTakerAddress = takerAddress;\n+ return [3 /*break*/, 3];\n+ case 1:\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(this.provider);\n+ return [4 /*yield*/, web3Wrapper.getAvailableAddressesAsync()];\n+ case 2:\n+ availableAddresses = _b.sent();\n+ firstAvailableAddress = _.head(availableAddresses);\n+ if (!_.isUndefined(firstAvailableAddress)) {\n+ finalTakerAddress = firstAvailableAddress;\n+ }\n+ else {\n+ throw new Error(types_1.AssetBuyerError.NoAddressAvailable);\n+ }\n+ _b.label = 3;\n+ case 3:\n+ _b.trys.push([3, 5, , 6]);\n+ return [4 /*yield*/, this._contractWrappers.forwarder.marketBuyOrdersWithEthAsync(orders, assetBuyAmount, finalTakerAddress, ethAmount || worstCaseQuoteInfo.totalEthAmount, feeOrders, feePercentage, feeRecipient, {\n+ gasLimit: gasLimit,\n+ gasPrice: gasPrice,\n+ shouldValidate: true,\n+ })];\n+ case 4:\n+ txHash = _b.sent();\n+ return [2 /*return*/, txHash];\n+ case 5:\n+ err_2 = _b.sent();\n+ if (_.includes(err_2.message, contract_wrappers_1.ContractWrappersError.SignatureRequestDenied)) {\n+ throw new Error(types_1.AssetBuyerError.SignatureRequestDenied);\n+ }\n+ else if (_.includes(err_2.message, contract_wrappers_1.ForwarderWrapperError.CompleteFillFailed)) {\n+ throw new Error(types_1.AssetBuyerError.TransactionValueTooLow);\n+ }\n+ else {\n+ throw err_2;\n+ }\n+ return [3 /*break*/, 6];\n+ case 6: return [2 /*return*/];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Get the asset data of all assets that are purchaseable with ether token (wETH) in the order provider passed in at init.\n+ *\n+ * @return An array of asset data strings that can be purchased using wETH.\n+ */\n+ AssetBuyer.prototype.getAvailableAssetDatasAsync = function () {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var etherTokenAssetData;\n+ return __generator(this, function (_a) {\n+ etherTokenAssetData = this._getEtherTokenAssetDataOrThrow();\n+ return [2 /*return*/, this.orderProvider.getAvailableMakerAssetDatasAsync(etherTokenAssetData)];\n+ });\n+ });\n+ };\n+ /**\n+ * Grab orders from the map, if there is a miss or it is time to refresh, fetch and process the orders\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param shouldForceOrderRefresh If set to true, new orders and state will be fetched instead of waiting for the next orderRefreshIntervalMs.\n+ */\n+ AssetBuyer.prototype.getOrdersAndFillableAmountsAsync = function (assetData, shouldForceOrderRefresh) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var ordersEntryIfExists, shouldRefresh, result, etherTokenAssetData, zrxTokenAssetData, orderProviderRequest, request, response, isMakerAssetZrxToken, ordersAndFillableAmounts, lastRefreshTime, updatedOrdersEntry;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ ordersEntryIfExists = this._ordersEntryMap[assetData];\n+ shouldRefresh = _.isUndefined(ordersEntryIfExists) ||\n+ shouldForceOrderRefresh ||\n+ // tslint:disable:restrict-plus-operands\n+ ordersEntryIfExists.lastRefreshTime + this.orderRefreshIntervalMs < Date.now();\n+ if (!shouldRefresh) {\n+ result = ordersEntryIfExists.ordersAndFillableAmounts;\n+ return [2 /*return*/, result];\n+ }\n+ etherTokenAssetData = this._getEtherTokenAssetDataOrThrow();\n+ zrxTokenAssetData = this._getZrxTokenAssetDataOrThrow();\n+ orderProviderRequest = {\n+ makerAssetData: assetData,\n+ takerAssetData: etherTokenAssetData,\n+ networkId: this.networkId,\n+ };\n+ request = orderProviderRequest;\n+ return [4 /*yield*/, this.orderProvider.getOrdersAsync(request)];\n+ case 1:\n+ response = _a.sent();\n+ // since the order provider is an injected dependency, validate that it respects the API\n+ // ie. it should only return maker/taker assetDatas that are specified\n+ order_provider_response_processor_1.orderProviderResponseProcessor.throwIfInvalidResponse(response, request);\n+ isMakerAssetZrxToken = assetData === zrxTokenAssetData;\n+ return [4 /*yield*/, order_provider_response_processor_1.orderProviderResponseProcessor.processAsync(response, isMakerAssetZrxToken, this.expiryBufferSeconds, this._contractWrappers.orderValidator)];\n+ case 2:\n+ ordersAndFillableAmounts = _a.sent();\n+ lastRefreshTime = Date.now();\n+ updatedOrdersEntry = {\n+ ordersAndFillableAmounts: ordersAndFillableAmounts,\n+ lastRefreshTime: lastRefreshTime,\n+ };\n+ this._ordersEntryMap[assetData] = updatedOrdersEntry;\n+ return [2 /*return*/, ordersAndFillableAmounts];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Get the assetData that represents the WETH token.\n+ * Will throw if WETH does not exist for the current network.\n+ */\n+ AssetBuyer.prototype._getEtherTokenAssetDataOrThrow = function () {\n+ return asset_data_utils_1.assetDataUtils.getEtherTokenAssetData(this._contractWrappers);\n+ };\n+ /**\n+ * Get the assetData that represents the ZRX token.\n+ * Will throw if ZRX does not exist for the current network.\n+ */\n+ AssetBuyer.prototype._getZrxTokenAssetDataOrThrow = function () {\n+ return this._contractWrappers.exchange.getZRXAssetData();\n+ };\n+ return AssetBuyer;\n+}());\n+exports.AssetBuyer = AssetBuyer;\n+//# sourceMappingURL=asset_buyer.js.map\n\\ No newline at end of file" - }, - { - "sha": "742913b367caaccaee92fc7d80ad65da18e73ac1", - "filename": "packages/asset-buyer/lib/src/asset_buyer.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_buyer.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/asset_buyer.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" - }, - { - "sha": "e4588ea81af49ceeb931f70b899ba4c94c6d20c8", - "filename": "packages/asset-buyer/lib/src/constants.d.ts", - "status": "added", - "additions": 13, - "deletions": 0, - "changes": 13, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,13 @@\n+import { BigNumber } from '@0x/utils';\n+import { AssetBuyerOpts, BuyQuoteExecutionOpts, BuyQuoteRequestOpts, OrdersAndFillableAmounts } from './types';\n+export declare const constants: {\n+ ZERO_AMOUNT: BigNumber;\n+ NULL_ADDRESS: string;\n+ MAINNET_NETWORK_ID: number;\n+ ETHER_TOKEN_DECIMALS: number;\n+ DEFAULT_ASSET_BUYER_OPTS: AssetBuyerOpts;\n+ DEFAULT_BUY_QUOTE_EXECUTION_OPTS: BuyQuoteExecutionOpts;\n+ DEFAULT_BUY_QUOTE_REQUEST_OPTS: BuyQuoteRequestOpts;\n+ EMPTY_ORDERS_AND_FILLABLE_AMOUNTS: OrdersAndFillableAmounts;\n+};\n+//# sourceMappingURL=constants.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "6a4029108344addb830bed04bb5d18e1fa61b65a", - "filename": "packages/asset-buyer/lib/src/constants.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"constants.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/constants.ts\"],\"names\":[],\"mappings\":\"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AA2B/G,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC\"}\n\\ No newline at end of file" - }, - { - "sha": "dce1dfec8ecd239e2d819a0a63d811bc4069e917", - "filename": "packages/asset-buyer/lib/src/constants.js", - "status": "added", - "additions": 34, - "deletions": 0, - "changes": 34, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,34 @@\n+\"use strict\";\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var utils_1 = require(\"@0x/utils\");\n+var NULL_ADDRESS = '0x0000000000000000000000000000000000000000';\n+var MAINNET_NETWORK_ID = 1;\n+var DEFAULT_ASSET_BUYER_OPTS = {\n+ networkId: MAINNET_NETWORK_ID,\n+ orderRefreshIntervalMs: 10000,\n+ expiryBufferSeconds: 120,\n+};\n+var DEFAULT_BUY_QUOTE_REQUEST_OPTS = {\n+ feePercentage: 0,\n+ shouldForceOrderRefresh: false,\n+ slippagePercentage: 0.2,\n+};\n+// Other default values are dynamically determined\n+var DEFAULT_BUY_QUOTE_EXECUTION_OPTS = {\n+ feeRecipient: NULL_ADDRESS,\n+};\n+var EMPTY_ORDERS_AND_FILLABLE_AMOUNTS = {\n+ orders: [],\n+ remainingFillableMakerAssetAmounts: [],\n+};\n+exports.constants = {\n+ ZERO_AMOUNT: new utils_1.BigNumber(0),\n+ NULL_ADDRESS: NULL_ADDRESS,\n+ MAINNET_NETWORK_ID: MAINNET_NETWORK_ID,\n+ ETHER_TOKEN_DECIMALS: 18,\n+ DEFAULT_ASSET_BUYER_OPTS: DEFAULT_ASSET_BUYER_OPTS,\n+ DEFAULT_BUY_QUOTE_EXECUTION_OPTS: DEFAULT_BUY_QUOTE_EXECUTION_OPTS,\n+ DEFAULT_BUY_QUOTE_REQUEST_OPTS: DEFAULT_BUY_QUOTE_REQUEST_OPTS,\n+ EMPTY_ORDERS_AND_FILLABLE_AMOUNTS: EMPTY_ORDERS_AND_FILLABLE_AMOUNTS,\n+};\n+//# sourceMappingURL=constants.js.map\n\\ No newline at end of file" - }, - { - "sha": "ffb95571f7f7b6fe7e86b3bccb5fa0c52ed50d4a", - "filename": "packages/asset-buyer/lib/src/constants.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"constants.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/constants.ts\"],\"names\":[],\"mappings\":\";;AACA,mCAAsC;AAItC,IAAM,YAAY,GAAG,4CAA4C,CAAC;AAClE,IAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,IAAM,wBAAwB,GAAmB;IAC7C,SAAS,EAAE,kBAAkB;IAC7B,sBAAsB,EAAE,KAAK;IAC7B,mBAAmB,EAAE,GAAG;CAC3B,CAAC;AAEF,IAAM,8BAA8B,GAAwB;IACxD,aAAa,EAAE,CAAC;IAChB,uBAAuB,EAAE,KAAK;IAC9B,kBAAkB,EAAE,GAAG;CAC1B,CAAC;AAEF,kDAAkD;AAClD,IAAM,gCAAgC,GAA0B;IAC5D,YAAY,EAAE,YAAY;CAC7B,CAAC;AAEF,IAAM,iCAAiC,GAA6B;IAChE,MAAM,EAAE,EAAmB;IAC3B,kCAAkC,EAAE,EAAiB;CACxD,CAAC;AAEW,QAAA,SAAS,GAAG;IACrB,WAAW,EAAE,IAAI,iBAAS,CAAC,CAAC,CAAC;IAC7B,YAAY,cAAA;IACZ,kBAAkB,oBAAA;IAClB,oBAAoB,EAAE,EAAE;IACxB,wBAAwB,0BAAA;IACxB,gCAAgC,kCAAA;IAChC,8BAA8B,gCAAA;IAC9B,iCAAiC,mCAAA;CACpC,CAAC\"}\n\\ No newline at end of file" - }, - { - "sha": "702e2feedefa4fc878244f025e622785db280f53", - "filename": "packages/asset-buyer/lib/src/errors.d.ts", - "status": "added", - "additions": 15, - "deletions": 0, - "changes": 15, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,15 @@\n+import { BigNumber } from '@0x/utils';\n+/**\n+ * Error class representing insufficient asset liquidity\n+ */\n+export declare class InsufficientAssetLiquidityError extends Error {\n+ /**\n+ * The amount availabe to fill (in base units) factoring in slippage.\n+ */\n+ amountAvailableToFill: BigNumber;\n+ /**\n+ * @param amountAvailableToFill The amount availabe to fill (in base units) factoring in slippage\n+ */\n+ constructor(amountAvailableToFill: BigNumber);\n+}\n+//# sourceMappingURL=errors.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "989a45d69dcf808034909d7efbaccfd34ac6147a", - "filename": "packages/asset-buyer/lib/src/errors.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"errors.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/errors.ts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,KAAK;IACtD;;OAEG;IACI,qBAAqB,EAAE,SAAS,CAAC;IACxC;;OAEG;gBACS,qBAAqB,EAAE,SAAS;CAM/C\"}\n\\ No newline at end of file" - }, - { - "sha": "d8770eed54098cdf167289ac8ec52686b84745e4", - "filename": "packages/asset-buyer/lib/src/errors.js", - "status": "added", - "additions": 35, - "deletions": 0, - "changes": 35, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,35 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var types_1 = require(\"./types\");\n+/**\n+ * Error class representing insufficient asset liquidity\n+ */\n+var InsufficientAssetLiquidityError = /** @class */ (function (_super) {\n+ __extends(InsufficientAssetLiquidityError, _super);\n+ /**\n+ * @param amountAvailableToFill The amount availabe to fill (in base units) factoring in slippage\n+ */\n+ function InsufficientAssetLiquidityError(amountAvailableToFill) {\n+ var _this = _super.call(this, types_1.AssetBuyerError.InsufficientAssetLiquidity) || this;\n+ _this.amountAvailableToFill = amountAvailableToFill;\n+ // Setting prototype so instanceof works. See https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n+ Object.setPrototypeOf(_this, InsufficientAssetLiquidityError.prototype);\n+ return _this;\n+ }\n+ return InsufficientAssetLiquidityError;\n+}(Error));\n+exports.InsufficientAssetLiquidityError = InsufficientAssetLiquidityError;\n+//# sourceMappingURL=errors.js.map\n\\ No newline at end of file" - }, - { - "sha": "3f7f95062b678a1fe860bb6f029f32693ca22a9c", - "filename": "packages/asset-buyer/lib/src/errors.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"errors.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/errors.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;AAEA,iCAA0C;AAE1C;;GAEG;AACH;IAAqD,mDAAK;IAKtD;;OAEG;IACH,yCAAY,qBAAgC;QAA5C,YACI,kBAAM,uBAAe,CAAC,0BAA0B,CAAC,SAIpD;QAHG,KAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,4KAA4K;QAC5K,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,+BAA+B,CAAC,SAAS,CAAC,CAAC;;IAC3E,CAAC;IACL,sCAAC;AAAD,CAAC,AAdD,CAAqD,KAAK,GAczD;AAdY,0EAA+B\"}\n\\ No newline at end of file" - }, - { - "sha": "fd537b9d74670f933de0c22f588573630f3d7842", - "filename": "packages/asset-buyer/lib/src/index.d.ts", - "status": "added", - "additions": 9, - "deletions": 0, - "changes": 9, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,9 @@\n+export { JSONRPCRequestPayload, JSONRPCResponsePayload, JSONRPCResponseError, JSONRPCErrorCallback, SupportedProvider, Web3JsProvider, GanacheProvider, EIP1193Provider, ZeroExProvider, EIP1193Event, Web3JsV1Provider, Web3JsV2Provider, Web3JsV3Provider, } from 'ethereum-types';\n+export { SignedOrder } from '@0x/types';\n+export { BigNumber } from '@0x/utils';\n+export { AssetBuyer } from './asset_buyer';\n+export { InsufficientAssetLiquidityError } from './errors';\n+export { BasicOrderProvider } from './order_providers/basic_order_provider';\n+export { StandardRelayerAPIOrderProvider } from './order_providers/standard_relayer_api_order_provider';\n+export { AssetBuyerError, AssetBuyerOpts, BuyQuote, BuyQuoteExecutionOpts, BuyQuoteInfo, BuyQuoteRequestOpts, LiquidityForAssetData, LiquidityRequestOpts, OrdersAndFillableAmounts, OrderProvider, OrderProviderRequest, OrderProviderResponse, SignedOrderWithRemainingFillableMakerAssetAmount, } from './types';\n+//# sourceMappingURL=index.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "eda1c7bf4e12509209f4091ae21cf769a74cb26f", - "filename": "packages/asset-buyer/lib/src/index.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EACH,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,uDAAuD,CAAC;AACxG,OAAO,EACH,eAAe,EACf,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,gDAAgD,GACnD,MAAM,SAAS,CAAC\"}\n\\ No newline at end of file" - }, - { - "sha": "bb309f351bac037f15c8e124c492c102d4b8597e", - "filename": "packages/asset-buyer/lib/src/index.js", - "status": "added", - "additions": 15, - "deletions": 0, - "changes": 15, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,15 @@\n+\"use strict\";\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var utils_1 = require(\"@0x/utils\");\n+exports.BigNumber = utils_1.BigNumber;\n+var asset_buyer_1 = require(\"./asset_buyer\");\n+exports.AssetBuyer = asset_buyer_1.AssetBuyer;\n+var errors_1 = require(\"./errors\");\n+exports.InsufficientAssetLiquidityError = errors_1.InsufficientAssetLiquidityError;\n+var basic_order_provider_1 = require(\"./order_providers/basic_order_provider\");\n+exports.BasicOrderProvider = basic_order_provider_1.BasicOrderProvider;\n+var standard_relayer_api_order_provider_1 = require(\"./order_providers/standard_relayer_api_order_provider\");\n+exports.StandardRelayerAPIOrderProvider = standard_relayer_api_order_provider_1.StandardRelayerAPIOrderProvider;\n+var types_1 = require(\"./types\");\n+exports.AssetBuyerError = types_1.AssetBuyerError;\n+//# sourceMappingURL=index.js.map\n\\ No newline at end of file" - }, - { - "sha": "f5f125c88f2b3741c3b3bed1f4c2e575cf1bbcac", - "filename": "packages/asset-buyer/lib/src/index.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\";;AAgBA,mCAAsC;AAA7B,4BAAA,SAAS,CAAA;AAElB,6CAA2C;AAAlC,mCAAA,UAAU,CAAA;AACnB,mCAA2D;AAAlD,mDAAA,+BAA+B,CAAA;AACxC,+EAA4E;AAAnE,oDAAA,kBAAkB,CAAA;AAC3B,6GAAwG;AAA/F,gFAAA,+BAA+B,CAAA;AACxC,iCAciB;AAbb,kCAAA,eAAe,CAAA\"}\n\\ No newline at end of file" - }, - { - "sha": "b3abcb718bf180c0daa2902b9d849750e76caf98", - "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts", - "status": "added", - "additions": 24, - "deletions": 0, - "changes": 24, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,24 @@\n+import { SignedOrder } from '@0x/types';\n+import { OrderProvider, OrderProviderRequest, OrderProviderResponse } from '../types';\n+export declare class BasicOrderProvider implements OrderProvider {\n+ readonly orders: SignedOrder[];\n+ /**\n+ * Instantiates a new BasicOrderProvider instance\n+ * @param orders An array of objects that conform to SignedOrder to fetch from.\n+ * @return An instance of BasicOrderProvider\n+ */\n+ constructor(orders: SignedOrder[]);\n+ /**\n+ * Given an object that conforms to OrderFetcherRequest, return the corresponding OrderProviderResponse that satisfies the request.\n+ * @param orderProviderRequest An instance of OrderFetcherRequest. See type for more information.\n+ * @return An instance of OrderProviderResponse. See type for more information.\n+ */\n+ getOrdersAsync(orderProviderRequest: OrderProviderRequest): Promise;\n+ /**\n+ * Given a taker asset data string, return all availabled paired maker asset data strings.\n+ * @param takerAssetData A string representing the taker asset data.\n+ * @return An array of asset data strings that can be purchased using takerAssetData.\n+ */\n+ getAvailableMakerAssetDatasAsync(takerAssetData: string): Promise;\n+}\n+//# sourceMappingURL=basic_order_provider.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "f182aedec9bd10a31e4adfd630c4af380744ffa4", - "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"basic_order_provider.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/order_providers/basic_order_provider.ts\"],\"names\":[],\"mappings\":\"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtF,qBAAa,kBAAmB,YAAW,aAAa;IACpD,SAAgB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtC;;;;OAIG;gBACS,MAAM,EAAE,WAAW,EAAE;IAIjC;;;;OAIG;IACU,cAAc,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQvG;;;;OAIG;IACU,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAI3F\"}\n\\ No newline at end of file" - }, - { - "sha": "47d81d1cbd0dbb037e555e709df5004993b6fec2", - "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.js", - "status": "added", - "additions": 86, - "deletions": 0, - "changes": 86, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,86 @@\n+\"use strict\";\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var json_schemas_1 = require(\"@0x/json-schemas\");\n+var _ = require(\"lodash\");\n+var assert_1 = require(\"../utils/assert\");\n+var BasicOrderProvider = /** @class */ (function () {\n+ /**\n+ * Instantiates a new BasicOrderProvider instance\n+ * @param orders An array of objects that conform to SignedOrder to fetch from.\n+ * @return An instance of BasicOrderProvider\n+ */\n+ function BasicOrderProvider(orders) {\n+ assert_1.assert.doesConformToSchema('orders', orders, json_schemas_1.schemas.signedOrdersSchema);\n+ this.orders = orders;\n+ }\n+ /**\n+ * Given an object that conforms to OrderFetcherRequest, return the corresponding OrderProviderResponse that satisfies the request.\n+ * @param orderProviderRequest An instance of OrderFetcherRequest. See type for more information.\n+ * @return An instance of OrderProviderResponse. See type for more information.\n+ */\n+ BasicOrderProvider.prototype.getOrdersAsync = function (orderProviderRequest) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var makerAssetData, takerAssetData, orders;\n+ return __generator(this, function (_a) {\n+ assert_1.assert.isValidOrderProviderRequest('orderProviderRequest', orderProviderRequest);\n+ makerAssetData = orderProviderRequest.makerAssetData, takerAssetData = orderProviderRequest.takerAssetData;\n+ orders = _.filter(this.orders, function (order) {\n+ return order.makerAssetData === makerAssetData && order.takerAssetData === takerAssetData;\n+ });\n+ return [2 /*return*/, { orders: orders }];\n+ });\n+ });\n+ };\n+ /**\n+ * Given a taker asset data string, return all availabled paired maker asset data strings.\n+ * @param takerAssetData A string representing the taker asset data.\n+ * @return An array of asset data strings that can be purchased using takerAssetData.\n+ */\n+ BasicOrderProvider.prototype.getAvailableMakerAssetDatasAsync = function (takerAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var ordersWithTakerAssetData;\n+ return __generator(this, function (_a) {\n+ ordersWithTakerAssetData = _.filter(this.orders, { takerAssetData: takerAssetData });\n+ return [2 /*return*/, _.map(ordersWithTakerAssetData, function (order) { return order.makerAssetData; })];\n+ });\n+ });\n+ };\n+ return BasicOrderProvider;\n+}());\n+exports.BasicOrderProvider = BasicOrderProvider;\n+//# sourceMappingURL=basic_order_provider.js.map\n\\ No newline at end of file" - }, - { - "sha": "aadfcffebd2db4d56d386bffb88022d2d34f97d1", - "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"basic_order_provider.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/order_providers/basic_order_provider.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA2C;AAE3C,0BAA4B;AAG5B,0CAAyC;AAEzC;IAEI;;;;OAIG;IACH,4BAAY,MAAqB;QAC7B,eAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,sBAAO,CAAC,kBAAkB,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IACD;;;;OAIG;IACU,2CAAc,GAA3B,UAA4B,oBAA0C;;;;gBAClE,eAAM,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;gBACzE,cAAc,GAAqB,oBAAoB,eAAzC,EAAE,cAAc,GAAK,oBAAoB,eAAzB,CAA0B;gBAC1D,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAA,KAAK;oBACtC,OAAO,KAAK,CAAC,cAAc,KAAK,cAAc,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,CAAC;gBAC9F,CAAC,CAAC,CAAC;gBACH,sBAAO,EAAE,MAAM,QAAA,EAAE,EAAC;;;KACrB;IACD;;;;OAIG;IACU,6DAAgC,GAA7C,UAA8C,cAAsB;;;;gBAC1D,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;gBAC3E,sBAAO,CAAC,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,cAAc,EAApB,CAAoB,CAAC,EAAC;;;KACzE;IACL,yBAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,gDAAkB\"}\n\\ No newline at end of file" - }, - { - "sha": "17f123933a2e2cf34bb0df0cfd273b5f8351345a", - "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts", - "status": "added", - "additions": 31, - "deletions": 0, - "changes": 31, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1,31 @@\n+import { OrderProvider, OrderProviderRequest, OrderProviderResponse } from '../types';\n+export declare class StandardRelayerAPIOrderProvider implements OrderProvider {\n+ readonly apiUrl: string;\n+ readonly networkId: number;\n+ private readonly _sraClient;\n+ /**\n+ * Given an array of APIOrder objects from a standard relayer api, return an array\n+ * of SignedOrderWithRemainingFillableMakerAssetAmounts\n+ */\n+ private static _getSignedOrderWithRemainingFillableMakerAssetAmountFromApi;\n+ /**\n+ * Instantiates a new StandardRelayerAPIOrderProvider instance\n+ * @param apiUrl The standard relayer API base HTTP url you would like to source orders from.\n+ * @param networkId The ethereum network id.\n+ * @return An instance of StandardRelayerAPIOrderProvider\n+ */\n+ constructor(apiUrl: string, networkId: number);\n+ /**\n+ * Given an object that conforms to OrderProviderRequest, return the corresponding OrderProviderResponse that satisfies the request.\n+ * @param orderProviderRequest An instance of OrderProviderRequest. See type for more information.\n+ * @return An instance of OrderProviderResponse. See type for more information.\n+ */\n+ getOrdersAsync(orderProviderRequest: OrderProviderRequest): Promise;\n+ /**\n+ * Given a taker asset data string, return all availabled paired maker asset data strings.\n+ * @param takerAssetData A string representing the taker asset data.\n+ * @return An array of asset data strings that can be purchased using takerAssetData.\n+ */\n+ getAvailableMakerAssetDatasAsync(takerAssetData: string): Promise;\n+}\n+//# sourceMappingURL=standard_relayer_api_order_provider.d.ts.map\n\\ No newline at end of file" - }, - { - "sha": "9089c009254da953d697fd1dc57182c9b5df5438", - "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map", - "status": "added", - "additions": 1, - "deletions": 0, - "changes": 1, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", - "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"standard_relayer_api_order_provider.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/order_providers/standard_relayer_api_order_provider.ts\"],\"names\":[],\"mappings\":\"AAIA,OAAO,EAEH,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EAExB,MAAM,UAAU,CAAC;AAIlB,qBAAa,+BAAgC,YAAW,aAAa;IACjE,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,2DAA2D;IAuB1E;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAO7C;;;;OAIG;IACU,cAAc,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmBvG;;;;OAIG;IACU,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAuB3F\"}\n\\ No newline at end of file" - }, - { - "sha": "0b51f468b717b5bbae06bd23b1edbc4b41bad625", - "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "5adbf2a7978898a74305d522b39177ecd7602747", - "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "a384bd1320acccb2744ba8b9c70f1a579e4c9f29", - "filename": "packages/asset-buyer/lib/src/types.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "06406774a66f791df4ffd712fe6fa8bfd9cadf30", - "filename": "packages/asset-buyer/lib/src/types.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "4f623eae3754ca4cdfd20b22467de1142f46aec4", - "filename": "packages/asset-buyer/lib/src/types.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "1c03ee8d422a1051f96cc9f329f96d0a70750dea", - "filename": "packages/asset-buyer/lib/src/types.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "9ca38476db8acdb04f39bab124a6a9ba17eadfc8", - "filename": "packages/asset-buyer/lib/src/utils/assert.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "2bb5a9296123ede3535bf9b3b146b92ce7702248", - "filename": "packages/asset-buyer/lib/src/utils/assert.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7e0c9b0485cf8254fb19a14c4b2c57d370e6701f", - "filename": "packages/asset-buyer/lib/src/utils/assert.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7cd6d316ae564bf6fa8baed85745b3203b36d954", - "filename": "packages/asset-buyer/lib/src/utils/assert.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "983ed3d62e24772d48ea1f5e8ddcde5baf3f97ec", - "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "738466134f0d49451f27560107a94dcbb1c45c42", - "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "96852f7866f00e7102a1b9cc4c17b55cdda56fc9", - "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "123b0b5029aa6b3cb6bc1b1cd1b77cf309cfe4e4", - "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "3cbf57581364e05e956114912eb465d447fbad3a", - "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "bf9ca187f990f368f47b1e3a9e6e6e4d9b0b5b83", - "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "cd3f4de8f0b338549df6ea303f61efa0665c6c10", - "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "e03f46c0018dbb6f6da556cdfd7068746819bf7e", - "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "37d1c7cbf9da1164b91e17af907039ba9c921b7e", - "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "2bf648b15433f7ac38476fe53942562c653ee5fd", - "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "137688662154b3f583be93b3b27773d1d3ef6ad4", - "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "c35dcec6d8ed22a7ef3e0b4db307e7beb67e03dd", - "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "319a109693cae8150ae14e6eb46daf735443059a", - "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "174b93d95d3cda7673265689732454abc6c9bce7", - "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "d2e764339e3b797b905bbb91dd94e4d43d97100d", - "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "97bff31dbe611f7696f6d1962710f7e1028d30f0", - "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "4bba214e91427d3033da59a261cb89d5f6956055", - "filename": "packages/asset-buyer/lib/src/utils/order_utils.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "21c7d0841772139c142b4e59b02dc36c24bbe8af", - "filename": "packages/asset-buyer/lib/src/utils/order_utils.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "16e4d0de9ec658062c57fa6f3744d547be51c320", - "filename": "packages/asset-buyer/lib/src/utils/order_utils.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "a5eb412067a523fffc141978fbcb29a169e4e5a0", - "filename": "packages/asset-buyer/lib/src/utils/order_utils.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "10e4768dfe8b9f2e66ae828716856c4a660b7bfb", - "filename": "packages/asset-buyer/lib/test/asset_buyer_test.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "c654dcc532f3664ebfe9cd1bd9b4d5f9bbdc8eda", - "filename": "packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b4d68fdf173fc8f1cce9cbd1f12d8aa7357a4a5f", - "filename": "packages/asset-buyer/lib/test/asset_buyer_test.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "13f51afb950350c546e4fa1f8b3c3ecc761f79be", - "filename": "packages/asset-buyer/lib/test/asset_buyer_test.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "6b665a7c1bd0e6730d82e9248999c78fceba310b", - "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7a0ad191c69d9b3e53b7cc94eed3a024ea66094c", - "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "fbaa256bedd8113de63bc88c0b7205c029918c63", - "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "5267e1c4c35da9e0751e4a7591fa1abf8ed1dbe0", - "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "9c7f6cc66fccbbef54b42b4ed88d6a8c75acc60e", - "filename": "packages/asset-buyer/lib/test/utils/chai_setup.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "148cdfb1abee7a61a48f324c74e6640dd1c3e0ed", - "filename": "packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7f7634965e1cd4e1f2334024127784e1832168d9", - "filename": "packages/asset-buyer/lib/test/utils/chai_setup.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "038f5ab7284f432e8f031ca6a41e77b4d0bf34d5", - "filename": "packages/asset-buyer/lib/test/utils/chai_setup.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "032679970025c8278866067ed3b22bd2ea1985bf", - "filename": "packages/asset-buyer/lib/test/utils/mocks.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "35202fc8746e51fb1bae3720518ccaddeb88c600", - "filename": "packages/asset-buyer/lib/test/utils/mocks.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "edb96f66027dff4124fcf44a79a142bb3cfadbd0", - "filename": "packages/asset-buyer/lib/test/utils/mocks.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "994f643b3692b5ee00118ccf1be45aa42ad4253c", - "filename": "packages/asset-buyer/lib/test/utils/mocks.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "8f358eaffc6ada8b10fdb42e350c4d131bdbe7ba", - "filename": "packages/asset-buyer/lib/test/utils/test_helpers.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "5c073200364fcbb0894063d9bb56722261997ed1", - "filename": "packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7130e8adc77219575d8b48463ed3974990f1d254", - "filename": "packages/asset-buyer/lib/test/utils/test_helpers.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "d9d068d6d36950766e83ebbb610e48b85b0e6e8d", - "filename": "packages/asset-buyer/lib/test/utils/test_helpers.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7b7011e0b6437d2d3187424389d87827362eb1d5", - "filename": "packages/asset-buyer/src/asset_buyer.ts", - "status": "modified", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/src/asset_buyer.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/src/asset_buyer.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/src/asset_buyer.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "2e8c18170375901afd75bd0f7870d154462cb72f", - "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "01d215359868458ca2243e3b579129fcd731f497", - "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "39c0589b41f9f973546bad0ae6b43a0d882cc1e3", - "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "eb8a8b7ae920f5bfcd6bd8818e61faaac4d6cab3", - "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "22efaf1dcaab0178c3dca5deae964ababa1a2a9b", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "a9d66354ae856bfc069faf5538d8a689944e286e", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "6f5d60f1eb926401163ff67e57d6d4fb7d1a8433", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "07950fca48992164eda05b70f2037bd2a7e15bb9", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "fc21a8a563771a17a6c083d93650c931f61f763b", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "73ffb2435120362345484215306e0a5cefe67c29", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "f00bc81768bea883505032c76e73713b6586228e", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "e8c9d6b323c47715279c6654a3cc22499927e426", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "cd09d1f79b63359bad6ee342128dcb5a8930d9a1", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "2e2be944397a2e4dd3e241bd849ba1410d13a5b8", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "83576a77478eaf09d8c7e8fb7622053dc48de4ea", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "50c167ab6bbe33e14d75337c6d22e9f5799526f6", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "ddbfa2603112011875909bdab559d3dbcbf6712d", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "803550bad4ac0ed6024e760eeecd5bb6bcec6c1e", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "82fe11867729bc2c664303f0d89d41fa8a427735", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "962c3a8cb8c1e38769a321970bf3534374abaab3", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "ef33d095310e17d727706d511689d778c3eed1d8", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b9a5cfd90e689ee682b61cd4789337fc5611f7a3", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "21230117fd335038ea5e3bec0443dca1a5ae8f97", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "a399fdaff2c9afd23bb07a83dc5034dc49542bf1", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "2d80271b10c805fe2bf98ba41b7bac7718b675e2", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "4966809f91d6fcd408a209b423d71a1b2db627dc", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "19805d1008ec289e7a9c6f6248154fe103f7487f", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "8e153f0c74326bb2f1011b1eb11a732365dc7ea4", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "0f10ace5784f4904a03c216b3ad628a899a12d1f", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "fd16f4c1ead1aae6e8bef1b54462457b8f8d4d82", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "bd3bb3c669df074b4bf6aa2ac3d149fd491e3ef1", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b8110cbe5c9e4f6d852198437f051d7b1ed0b7d8", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "59929175a1546e898c178eaf8e8742cff4aaf9d9", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "ae7dfffc19b9540b6b3da291848e7a4617d731ae", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "e0ccd5714833147dd1cf615e703a3997cc86001d", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "ea66d9338c9504c23793599b0f97354c1c60b5dc", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "6c82f6ae3268ab89076b498b0a1c85e2f6379f41", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b2da17bbf1ba5c5077b5b89d29e01512bc1a922f", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "4604181f15faa07df36c66dc9174eea8765c7e64", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "66f6ab5da84c555ff2d5b662b12067042d3b8a28", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "d681258323cfd0c371d3436f944f7114046c62a4", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b90e8e8865f9dda53f9a4c25670699b0dc79e534", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b0c92e115aae9c2b0cdfd03a052e848e6493f016", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b72cad605ea4ec338bd0741198dc779c11c5fe56", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "8360ab153554888d0d5a0ea620b65d3ca963c283", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "18392ba13fb5bed2592d09570fd67e99053f89e4", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "6364c4f6aecb44c9924b2df4c4052b638012fbd7", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "f3384d89be80f5e0c62a56a0f77efa0457d6faa4", - "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "d09af8e2a801c1893dd2381acd2a8734dacaf5b3", - "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "9f7187d7a25ee1546531115e6b9aef8f859e4f56", - "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "0fd846ff7309a0e5fd840776cc20d01ba3e0384e", - "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "90f17300ea7c3ee3a79c9f4044100817703cf361", - "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "eb293375e6109cd4c6971eed61ffb2858fbd078e", - "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "83e17213c4c5fe31dbdaa29c5235cbf25742703b", - "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "51be8ed185d103488997f33aba4ac2ffae60761c", - "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "94970bf93f392b314f712d0bf2779a4adb518435", - "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "f5f75fe6f08ef36ef0f9f9b025316284c0f74b64", - "filename": "packages/contract-wrappers/lib/src/index.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "ef631ecee407294901ea17d6ea5532e70240ee85", - "filename": "packages/contract-wrappers/lib/src/index.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "852fbb0b1ea63b65712ee70afc50adc43a3e6fe2", - "filename": "packages/contract-wrappers/lib/src/index.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "8a845bdffaaa2b9e3a410d706694161cb8c0ff47", - "filename": "packages/contract-wrappers/lib/src/index.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "cafc5a6934033b3fd1495685aadc58de508d2c84", - "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "4457312573d4eba1f248cdd6e467a1fe14b57887", - "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "cd4a9ca16e03894bd825f4cc40fa2ad9bd02372d", - "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "919fa1c15466e7538eeadaa8b867b4e82e202afe", - "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "187df85bd213cee6e4d4b327bb941e3da020a9ea", - "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "29321fdf8dc9ced63984ca5ba750e35f9f4bbfae", - "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7c05b93ee34826961a6b998d6f67beae3afda8c7", - "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "352db89a441cf71d24e8592e8a20f07c48ad1ba9", - "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "d1c5bfa3e7186629be1bf7c377537d120dce4a88", - "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "0d21d505e75127d4f127cda9bd9d318d49e709a7", - "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "38a1b62a984e82d12ff1d8a76c4b82ed8e5599a4", - "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "848b5ff9b8fcf9d03f157630937295242eb974b4", - "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "457af1c4e04034cb28679db03fbd7deabd673229", - "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "978c8c948543dc31d7cc6e3ae5e7b91615de4a38", - "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "aa3f126c5acabda73bf6a9704c7a23ef3bec5262", - "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "13426da3d8abb0a846c7db545aa26568a4368384", - "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "fa4415ec80545120dfa0efe57dd62f641f6c7724", - "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "e7dda4bf2d82f8f6078cc2241d76ae3b4267c426", - "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "f2463650c7b0114a1ab1b18f37574d7a2e2ca6a8", - "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "6e93e21a59a09c36fc5e55164482f8ab41d3cdd0", - "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "f7edf6d8527e972123a920103cfd0087285d93e9", - "filename": "packages/contract-wrappers/lib/src/types.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "c6eb78e44bfb9c45863bf317340d00f19dabd60f", - "filename": "packages/contract-wrappers/lib/src/types.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "19bed91da0be1157a948064ae6850a6372c58fc5", - "filename": "packages/contract-wrappers/lib/src/types.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "93b07f6271b180cd35c9661d6d906d6c06c21597", - "filename": "packages/contract-wrappers/lib/src/types.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b61375a7a341e978bf1650c835dc03a60fd10937", - "filename": "packages/contract-wrappers/lib/src/utils/assert.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "bf2af6d0b643b3d7f69deb60c8f8e5aba2e92ff0", - "filename": "packages/contract-wrappers/lib/src/utils/assert.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b072ddd8eba0b764e9776a5b171f46c5f1802f66", - "filename": "packages/contract-wrappers/lib/src/utils/assert.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "f0306f2d148d8de7f30be9ccfa3ac48b17de1f67", - "filename": "packages/contract-wrappers/lib/src/utils/assert.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "cdb0ef43676e35d4f45eaa1ef04d79f5d7ad2ed0", - "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "1820a5201d0056c583cdca7da0e20b551840fdbb", - "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "c7b7cc8b1d360bea858c0837064e4966186b89b3", - "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "4dbe7aaf66a07e0bbf083da05b3c44952dbef68d", - "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "5de7104088d64d5b2f57f719ab5c19b6f9f0a601", - "filename": "packages/contract-wrappers/lib/src/utils/constants.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "c8bbd4312bf32e962b0a634fff60e6b6bc71c266", - "filename": "packages/contract-wrappers/lib/src/utils/constants.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "5be2fd6b1173e64e62dcae363bb4183b62b1f41c", - "filename": "packages/contract-wrappers/lib/src/utils/constants.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7a54c61750ede98f887bc8762e1e3ce87b2ef25c", - "filename": "packages/contract-wrappers/lib/src/utils/constants.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "bf2efb1f260e603fbb48256a16309f5480a0d566", - "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "dc207b623bc358b49fef017963716deafaf1b34f", - "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7486da408486269a719fd6bd331d0ae0b900a262", - "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "bc1181bd9edb76e1e329e8e2b8e12fdf47a77a4b", - "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "cf9a7f694c2f849feeaba5e5babe2c3c006f667f", - "filename": "packages/contract-wrappers/lib/src/utils/decorators.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "5d830bd5752e56829756705241c8fc53b7491249", - "filename": "packages/contract-wrappers/lib/src/utils/decorators.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "87ce646774eea85e9670ee765b126cff9e00fb20", - "filename": "packages/contract-wrappers/lib/src/utils/decorators.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "cd78559049f0b1fc4893142281f4e70ada37ae8d", - "filename": "packages/contract-wrappers/lib/src/utils/decorators.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "bd8559861473c62f30c282afb502fbd862d3bbf6", - "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "8618170b3b7dc35596b9860dcbb5a0c14f87b3ee", - "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b56035203e946f6afa14724546d80796f297746f", - "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "74da507febac6e0cd1f6295916d9980dff24ee0b", - "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "e54230719ba50ba8af35ceb5ee1b27c36f058620", - "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "03c53aa1e46c74f52d597de326aaecda0b32c11d", - "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "ea0176059c722ce2ba16573e1537587653ef27f8", - "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "145609e52ea60c728c72c15687c7c834ee4f7c8a", - "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7c655d40b44054e7ebc0f264591c9a75027f3aa1", - "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "d76d76ace3cdcb9e78337aecbae768e8d07ad652", - "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "e1c5d671fc3a40ffa520c88670f2653624612078", - "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "e59424f06cb9bb22e026bdae87c033f2761baa4e", - "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "9d636cab1cba3e23a6cca2f4fc48c7c0984abae8", - "filename": "packages/contract-wrappers/lib/src/utils/utils.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "62631a96dc5cbdf31399b54d1757428b292154b8", - "filename": "packages/contract-wrappers/lib/src/utils/utils.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "8aa8364744936ca4fc5ba931089162948edf520f", - "filename": "packages/contract-wrappers/lib/src/utils/utils.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "a3c18a94eeb95b07cd8aba1fb5fae1983758fa3b", - "filename": "packages/contract-wrappers/lib/src/utils/utils.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "d6cbe40c2924c3c20bd364779f3ab0cb35b23e2d", - "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "c81f1925ea457c36d5e508caf76ad2158e2de107", - "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "5723fdf6d5ff11f593876c3712e68b5f70e85d92", - "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "2cfe7606f9c469e55a6867649618755ad767e381", - "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "e8b93e9d824274264f3fa6c850faf73d8bd0dde7", - "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "211be3201693bec7b30bc6c2c666a5d505ca88a8", - "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "a2139d607e3e7aa8d9c01e0310fd780b11577b66", - "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "684fe94e3cdcd00e285d1f2252c770a0d7ce4d33", - "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "2a5c67822d0000f2fbea74f7395b6fc41333074f", - "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7e098d49cb3ce789ee314742589680438d6a7a38", - "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "9d7755a5520115eb4307e453fe4962d9b3d7f3e4", - "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7855079ed73d31971ed253ce4b9bd033b5998da4", - "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "031d30b12b6d18030a18161df33af9fda3a0c61f", - "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "582deb76edddcaaa297c48aababe895a4a7e5552", - "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "389e385dfd09024b78bff9f24d34f719ab9fb48c", - "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "73f5be3e4f164eaefee590da54111b91351128d4", - "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "7cd093498c87df797d7e9f3e90ce15ed9c2aca9d", - "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "35d2716838cd00dd4bbfcc479101f131e4e85acc", - "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "adb4c3aa4cb3848ca62a67f597297b7cd421df08", - "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "3986928a5a8a122a9cf62b85f665068cc6067419", - "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "575a5889fb0f656ddba2a75d42ee3add2bce491a", - "filename": "packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "c3e4ebabdfd6be8f9a021316f0a8793371825ba0", - "filename": "packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - }, - { - "sha": "b37ac6795019e1d9b725da2862e7c08fb20002b9", - "filename": "packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js", - "status": "added", - "additions": 0, - "deletions": 0, - "changes": 0, - "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js", - "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js", - "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" - } - ] -} \ No newline at end of file + ], + "files": [ + { + "sha": "da3bed7a3db35c50bcd43ecaa5837e7f3d5043f9", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts", + "status": "added", + "additions": 180, + "deletions": 0, + "changes": 180, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,180 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type AssetProxyOwnerEventArgs = AssetProxyOwnerAssetProxyRegistrationEventArgs | AssetProxyOwnerConfirmationTimeSetEventArgs | AssetProxyOwnerTimeLockChangeEventArgs | AssetProxyOwnerConfirmationEventArgs | AssetProxyOwnerRevocationEventArgs | AssetProxyOwnerSubmissionEventArgs | AssetProxyOwnerExecutionEventArgs | AssetProxyOwnerExecutionFailureEventArgs | AssetProxyOwnerDepositEventArgs | AssetProxyOwnerOwnerAdditionEventArgs | AssetProxyOwnerOwnerRemovalEventArgs | AssetProxyOwnerRequirementChangeEventArgs;\n+export declare enum AssetProxyOwnerEvents {\n+ AssetProxyRegistration = \"AssetProxyRegistration\",\n+ ConfirmationTimeSet = \"ConfirmationTimeSet\",\n+ TimeLockChange = \"TimeLockChange\",\n+ Confirmation = \"Confirmation\",\n+ Revocation = \"Revocation\",\n+ Submission = \"Submission\",\n+ Execution = \"Execution\",\n+ ExecutionFailure = \"ExecutionFailure\",\n+ Deposit = \"Deposit\",\n+ OwnerAddition = \"OwnerAddition\",\n+ OwnerRemoval = \"OwnerRemoval\",\n+ RequirementChange = \"RequirementChange\"\n+}\n+export interface AssetProxyOwnerAssetProxyRegistrationEventArgs extends DecodedLogArgs {\n+ assetProxyContract: string;\n+ isRegistered: boolean;\n+}\n+export interface AssetProxyOwnerConfirmationTimeSetEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+ confirmationTime: BigNumber;\n+}\n+export interface AssetProxyOwnerTimeLockChangeEventArgs extends DecodedLogArgs {\n+ secondsTimeLocked: BigNumber;\n+}\n+export interface AssetProxyOwnerConfirmationEventArgs extends DecodedLogArgs {\n+ sender: string;\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerRevocationEventArgs extends DecodedLogArgs {\n+ sender: string;\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerSubmissionEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerExecutionEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerExecutionFailureEventArgs extends DecodedLogArgs {\n+ transactionId: BigNumber;\n+}\n+export interface AssetProxyOwnerDepositEventArgs extends DecodedLogArgs {\n+ sender: string;\n+ value: BigNumber;\n+}\n+export interface AssetProxyOwnerOwnerAdditionEventArgs extends DecodedLogArgs {\n+ owner: string;\n+}\n+export interface AssetProxyOwnerOwnerRemovalEventArgs extends DecodedLogArgs {\n+ owner: string;\n+}\n+export interface AssetProxyOwnerRequirementChangeEventArgs extends DecodedLogArgs {\n+ required: BigNumber;\n+}\n+export declare class AssetProxyOwnerContract extends BaseContract {\n+ owners: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeOwner: {\n+ sendTransactionAsync(owner: string, txData?: Partial): Promise;\n+ estimateGasAsync(owner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(owner: string): string;\n+ callAsync(owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ revokeConfirmation: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isOwner: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ confirmations: {\n+ callAsync(index_0: BigNumber, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ executeRemoveAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ secondsTimeLocked: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getTransactionCount: {\n+ callAsync(pending: boolean, executed: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ registerAssetProxy: {\n+ sendTransactionAsync(assetProxyContract: string, isRegistered: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(assetProxyContract: string, isRegistered: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetProxyContract: string, isRegistered: boolean): string;\n+ callAsync(assetProxyContract: string, isRegistered: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ addOwner: {\n+ sendTransactionAsync(owner: string, txData?: Partial): Promise;\n+ estimateGasAsync(owner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(owner: string): string;\n+ callAsync(owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isConfirmed: {\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ changeTimeLock: {\n+ sendTransactionAsync(_secondsTimeLocked: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_secondsTimeLocked: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_secondsTimeLocked: BigNumber): string;\n+ callAsync(_secondsTimeLocked: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isAssetProxyRegistered: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getConfirmationCount: {\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transactions: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[string, BigNumber, string, boolean]>;\n+ };\n+ getOwners: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getTransactionIds: {\n+ callAsync(from: BigNumber, to: BigNumber, pending: boolean, executed: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getConfirmations: {\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transactionCount: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ changeRequirement: {\n+ sendTransactionAsync(_required: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_required: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_required: BigNumber): string;\n+ callAsync(_required: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ confirmTransaction: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ submitTransaction: {\n+ sendTransactionAsync(destination: string, value: BigNumber, data: string, txData?: Partial): Promise;\n+ estimateGasAsync(destination: string, value: BigNumber, data: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(destination: string, value: BigNumber, data: string): string;\n+ callAsync(destination: string, value: BigNumber, data: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ confirmationTimes: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ MAX_OWNER_COUNT: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ required: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ replaceOwner: {\n+ sendTransactionAsync(owner: string, newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(owner: string, newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(owner: string, newOwner: string): string;\n+ callAsync(owner: string, newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ executeTransaction: {\n+ sendTransactionAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(transactionId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(transactionId: BigNumber): string;\n+ callAsync(transactionId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _owners: string[], _assetProxyContracts: string[], _required: BigNumber, _secondsTimeLocked: BigNumber): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _owners: string[], _assetProxyContracts: string[], _required: BigNumber, _secondsTimeLocked: BigNumber): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=asset_proxy_owner.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "58428c5a5ee8bbedb2ceb65448e9ab54fb5ed5c0", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_proxy_owner.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/asset_proxy_owner.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "deaf4bbd1ca935029de610ba2a45e9a9634c54f3", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js", + "status": "added", + "additions": 1445, + "deletions": 0, + "changes": 1445, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,1445 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var AssetProxyOwnerEvents;\n+(function (AssetProxyOwnerEvents) {\n+ AssetProxyOwnerEvents[\"AssetProxyRegistration\"] = \"AssetProxyRegistration\";\n+ AssetProxyOwnerEvents[\"ConfirmationTimeSet\"] = \"ConfirmationTimeSet\";\n+ AssetProxyOwnerEvents[\"TimeLockChange\"] = \"TimeLockChange\";\n+ AssetProxyOwnerEvents[\"Confirmation\"] = \"Confirmation\";\n+ AssetProxyOwnerEvents[\"Revocation\"] = \"Revocation\";\n+ AssetProxyOwnerEvents[\"Submission\"] = \"Submission\";\n+ AssetProxyOwnerEvents[\"Execution\"] = \"Execution\";\n+ AssetProxyOwnerEvents[\"ExecutionFailure\"] = \"ExecutionFailure\";\n+ AssetProxyOwnerEvents[\"Deposit\"] = \"Deposit\";\n+ AssetProxyOwnerEvents[\"OwnerAddition\"] = \"OwnerAddition\";\n+ AssetProxyOwnerEvents[\"OwnerRemoval\"] = \"OwnerRemoval\";\n+ AssetProxyOwnerEvents[\"RequirementChange\"] = \"RequirementChange\";\n+})(AssetProxyOwnerEvents = exports.AssetProxyOwnerEvents || (exports.AssetProxyOwnerEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var AssetProxyOwnerContract = /** @class */ (function (_super) {\n+ __extends(AssetProxyOwnerContract, _super);\n+ function AssetProxyOwnerContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'AssetProxyOwner', abi, address, supportedProvider, txDefaults) || this;\n+ _this.owners = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owners(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owners(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeOwner = {\n+ sendTransactionAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeOwner.estimateGasAsync.bind(self, owner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (owner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeOwner(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.revokeConfirmation = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.revokeConfirmation.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('revokeConfirmation(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('revokeConfirmation(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isOwner = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isOwner(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isOwner(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.confirmations = {\n+ callAsync: function (index_0, index_1, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmations(uint256,address)', [index_0,\n+ index_1\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('confirmations(uint256,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.executeRemoveAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.executeRemoveAuthorizedAddressAtIndex.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeRemoveAuthorizedAddressAtIndex(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('executeRemoveAuthorizedAddressAtIndex(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.secondsTimeLocked = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('secondsTimeLocked()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('secondsTimeLocked()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTransactionCount = {\n+ callAsync: function (pending, executed, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTransactionCount(bool,bool)', [pending,\n+ executed\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTransactionCount(bool,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.registerAssetProxy = {\n+ sendTransactionAsync: function (assetProxyContract, isRegistered, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.registerAssetProxy.estimateGasAsync.bind(self, assetProxyContract, isRegistered))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (assetProxyContract, isRegistered, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (assetProxyContract, isRegistered) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (assetProxyContract, isRegistered, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address,bool)', [assetProxyContract,\n+ isRegistered\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('registerAssetProxy(address,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.addOwner = {\n+ sendTransactionAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addOwner.estimateGasAsync.bind(self, owner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (owner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (owner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addOwner(address)', [owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addOwner(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isConfirmed = {\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isConfirmed(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isConfirmed(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.changeTimeLock = {\n+ sendTransactionAsync: function (_secondsTimeLocked, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.changeTimeLock.estimateGasAsync.bind(self, _secondsTimeLocked))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_secondsTimeLocked, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_secondsTimeLocked) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_secondsTimeLocked, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeTimeLock(uint256)', [_secondsTimeLocked\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('changeTimeLock(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isAssetProxyRegistered = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isAssetProxyRegistered(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isAssetProxyRegistered(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getConfirmationCount = {\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getConfirmationCount(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getConfirmationCount(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transactions = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transactions(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transactions(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getOwners = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getOwners()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getOwners()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTransactionIds = {\n+ callAsync: function (from, to, pending, executed, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTransactionIds(uint256,uint256,bool,bool)', [from,\n+ to,\n+ pending,\n+ executed\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTransactionIds(uint256,uint256,bool,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getConfirmations = {\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getConfirmations(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getConfirmations(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transactionCount = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transactionCount()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transactionCount()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.changeRequirement = {\n+ sendTransactionAsync: function (_required, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.changeRequirement.estimateGasAsync.bind(self, _required))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_required, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_required) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_required, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('changeRequirement(uint256)', [_required\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('changeRequirement(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.confirmTransaction = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.confirmTransaction.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('confirmTransaction(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.submitTransaction = {\n+ sendTransactionAsync: function (destination, value, data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.submitTransaction.estimateGasAsync.bind(self, destination, value, data))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (destination, value, data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (destination, value, data) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (destination, value, data, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('submitTransaction(address,uint256,bytes)', [destination,\n+ value,\n+ data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('submitTransaction(address,uint256,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.confirmationTimes = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('confirmationTimes(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('confirmationTimes(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.MAX_OWNER_COUNT = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('MAX_OWNER_COUNT()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('MAX_OWNER_COUNT()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.required = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('required()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('required()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.replaceOwner = {\n+ sendTransactionAsync: function (owner, newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.replaceOwner.estimateGasAsync.bind(self, owner, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (owner, newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (owner, newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (owner, newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('replaceOwner(address,address)', [owner,\n+ newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('replaceOwner(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.executeTransaction = {\n+ sendTransactionAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.executeTransaction.estimateGasAsync.bind(self, transactionId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (transactionId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (transactionId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (transactionId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('executeTransaction(uint256)', [transactionId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('executeTransaction(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ AssetProxyOwnerContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _owners, _assetProxyContracts, _required, _secondsTimeLocked) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, AssetProxyOwnerContract.deployAsync(bytecode, abi, provider, txDefaults, _owners, _assetProxyContracts, _required, _secondsTimeLocked)];\n+ });\n+ });\n+ };\n+ AssetProxyOwnerContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _owners, _assetProxyContracts, _required, _secondsTimeLocked) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_owners,\n+ _assetProxyContracts,\n+ _required,\n+ _secondsTimeLocked\n+ ], base_contract_1.BaseContract._bigNumberToString), 4), _owners = _a[0], _assetProxyContracts = _a[1], _required = _a[2], _secondsTimeLocked = _a[3];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_owners,\n+ _assetProxyContracts,\n+ _required,\n+ _secondsTimeLocked\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"AssetProxyOwner successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new AssetProxyOwnerContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_owners,\n+ _assetProxyContracts,\n+ _required,\n+ _secondsTimeLocked\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return AssetProxyOwnerContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.AssetProxyOwnerContract = AssetProxyOwnerContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=asset_proxy_owner.js.map\n\\ No newline at end of file" + }, + { + "sha": "9d796719175f5703e76872406a30568b5c5f1229", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/asset_proxy_owner.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_proxy_owner.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/asset_proxy_owner.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "ff28484cf0d4f3a402e9308ad812cbc5e620b1ae", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts", + "status": "added", + "additions": 85, + "deletions": 0, + "changes": 85, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,85 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type DummyERC20TokenEventArgs = DummyERC20TokenTransferEventArgs | DummyERC20TokenApprovalEventArgs;\n+export declare enum DummyERC20TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\"\n+}\n+export interface DummyERC20TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface DummyERC20TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export declare class DummyERC20TokenContract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_spender: string, _value: BigNumber): string;\n+ callAsync(_spender: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string;\n+ callAsync(_from: string, _to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ decimals: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ mint: {\n+ sendTransactionAsync(_value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_value: BigNumber): string;\n+ callAsync(_value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _value: BigNumber): string;\n+ callAsync(_to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(_owner: string, _spender: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ setBalance: {\n+ sendTransactionAsync(_target: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_target: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_target: string, _value: BigNumber): string;\n+ callAsync(_target: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ MAX_MINT_AMOUNT: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string, _decimals: BigNumber, _totalSupply: BigNumber): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string, _decimals: BigNumber, _totalSupply: BigNumber): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=dummy_erc20_token.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "e11e773f837176ec3d1158a2399eb08cb1716ced", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc20_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc20_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,wBAAwB,GAC9B,gCAAgC,GAChC,gCAAgC,CAAC;AAEvC,oBAAY,qBAAqB;IAC7B,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACxB;AAED,MAAM,WAAW,gCAAiC,SAAQ,cAAc;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,gCAAiC,SAAQ,cAAc;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,uBAAwB,SAAQ,YAAY;IAC9C,IAAI;;MAyBT;IACK,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,QAAQ;;MAyBb;IACK,SAAS;;MA2Bd;IACK,KAAK;;MAyBV;IACK,MAAM;;MAyBX;IACK,IAAI;;;;;MA2ET;IACK,QAAQ;;;;;MAoFb;IACK,SAAS;;MA6Bd;IACK,UAAU;;;;;MAoFf;IACK,iBAAiB;;;;;MA2EtB;IACK,eAAe;;MAyBpB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,SAAS,GAC5B,OAAO,CAAC,uBAAuB,CAAC;WAaf,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,SAAS,GAC5B,OAAO,CAAC,uBAAuB,CAAC;gBAyCvB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "bb4e3857e51bf86a3cd74390cd1314168fbd05e1", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js", + "status": "added", + "additions": 843, + "deletions": 0, + "changes": 843, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,843 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var DummyERC20TokenEvents;\n+(function (DummyERC20TokenEvents) {\n+ DummyERC20TokenEvents[\"Transfer\"] = \"Transfer\";\n+ DummyERC20TokenEvents[\"Approval\"] = \"Approval\";\n+})(DummyERC20TokenEvents = exports.DummyERC20TokenEvents || (exports.DummyERC20TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var DummyERC20TokenContract = /** @class */ (function (_super) {\n+ __extends(DummyERC20TokenContract, _super);\n+ function DummyERC20TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'DummyERC20Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _spender, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_spender, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_spender, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.decimals = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('decimals()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('decimals()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.mint = {\n+ sendTransactionAsync: function (_value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.mint.estimateGasAsync.bind(self, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(uint256)', [_value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('mint(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (_owner, _spender, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner,\n+ _spender\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.setBalance = {\n+ sendTransactionAsync: function (_target, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.setBalance.estimateGasAsync.bind(self, _target, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_target, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_target, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_target, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setBalance(address,uint256)', [_target,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('setBalance(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.MAX_MINT_AMOUNT = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('MAX_MINT_AMOUNT()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('MAX_MINT_AMOUNT()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ DummyERC20TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _name, _symbol, _decimals, _totalSupply) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, DummyERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults, _name, _symbol, _decimals, _totalSupply)];\n+ });\n+ });\n+ };\n+ DummyERC20TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _name, _symbol, _decimals, _totalSupply) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_name,\n+ _symbol,\n+ _decimals,\n+ _totalSupply\n+ ], base_contract_1.BaseContract._bigNumberToString), 4), _name = _a[0], _symbol = _a[1], _decimals = _a[2], _totalSupply = _a[3];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_name,\n+ _symbol,\n+ _decimals,\n+ _totalSupply\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"DummyERC20Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new DummyERC20TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_name,\n+ _symbol,\n+ _decimals,\n+ _totalSupply\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return DummyERC20TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.DummyERC20TokenContract = DummyERC20TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=dummy_erc20_token.js.map\n\\ No newline at end of file" + }, + { + "sha": "ccf84738e65bb9b7520b2b69a0f04206808c3106", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc20_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc20_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc20_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "0c9f3baa8ef65ff4159f9916c463246009793a10", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts", + "status": "added", + "additions": 100, + "deletions": 0, + "changes": 100, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,100 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type DummyERC721TokenEventArgs = DummyERC721TokenTransferEventArgs | DummyERC721TokenApprovalEventArgs | DummyERC721TokenApprovalForAllEventArgs;\n+export declare enum DummyERC721TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\",\n+ ApprovalForAll = \"ApprovalForAll\"\n+}\n+export interface DummyERC721TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _tokenId: BigNumber;\n+}\n+export interface DummyERC721TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _approved: string;\n+ _tokenId: BigNumber;\n+}\n+export interface DummyERC721TokenApprovalForAllEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _operator: string;\n+ _approved: boolean;\n+}\n+export declare class DummyERC721TokenContract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getApproved: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_approved: string, _tokenId: BigNumber): string;\n+ callAsync(_approved: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ mint: {\n+ sendTransactionAsync(_to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _tokenId: BigNumber): string;\n+ callAsync(_to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom1: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ ownerOf: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ burn: {\n+ sendTransactionAsync(_owner: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_owner: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_owner: string, _tokenId: BigNumber): string;\n+ callAsync(_owner: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ setApprovalForAll: {\n+ sendTransactionAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_operator: string, _approved: boolean): string;\n+ callAsync(_operator: string, _approved: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom2: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber, _data: string): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isApprovedForAll: {\n+ callAsync(_owner: string, _operator: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _name: string, _symbol: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=dummy_erc721_token.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "134e1107e302a6392449a8233eb09f9f704c4e6d", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc721_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc721_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,yBAAyB,GAC/B,iCAAiC,GACjC,iCAAiC,GACjC,uCAAuC,CAAC;AAE9C,oBAAY,sBAAsB;IAC9B,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;CACpC;AAED,MAAM,WAAW,iCAAkC,SAAQ,cAAc;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,iCAAkC,SAAQ,cAAc;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,uCAAwC,SAAQ,cAAc;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACtB;AAMD,qBAAa,wBAAyB,SAAQ,YAAY;IAC/C,IAAI;;MAyBT;IACK,WAAW;;MA2BhB;IACK,OAAO;;;;;MAoFZ;IACK,YAAY;;;;;MA6FjB;IACK,IAAI;;;;;MAoFT;IACK,iBAAiB;;;;;MA6FtB;IACK,OAAO;;MA2BZ;IACK,SAAS;;MA2Bd;IACK,KAAK;;MAyBV;IACK,MAAM;;MAyBX;IACK,IAAI;;;;;MAoFT;IACK,iBAAiB;;;;;MAoFtB;IACK,iBAAiB;;;;;MAsGtB;IACK,gBAAgB;;MA6BrB;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,CAAC;WAWhB,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,CAAC;gBAiCxB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "4c040e84e8c03672958c5d22f9e3fd22366c44c2", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js", + "status": "added", + "additions": 988, + "deletions": 0, + "changes": 988, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,988 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var DummyERC721TokenEvents;\n+(function (DummyERC721TokenEvents) {\n+ DummyERC721TokenEvents[\"Transfer\"] = \"Transfer\";\n+ DummyERC721TokenEvents[\"Approval\"] = \"Approval\";\n+ DummyERC721TokenEvents[\"ApprovalForAll\"] = \"ApprovalForAll\";\n+})(DummyERC721TokenEvents = exports.DummyERC721TokenEvents || (exports.DummyERC721TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var DummyERC721TokenContract = /** @class */ (function (_super) {\n+ __extends(DummyERC721TokenContract, _super);\n+ function DummyERC721TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'DummyERC721Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getApproved = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getApproved(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _approved, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_approved, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_approved, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.mint = {\n+ sendTransactionAsync: function (_to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.mint.estimateGasAsync.bind(self, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('mint(address,uint256)', [_to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('mint(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom1 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom1.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.ownerOf = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.burn = {\n+ sendTransactionAsync: function (_owner, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.burn.estimateGasAsync.bind(self, _owner, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_owner, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_owner, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_owner, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('burn(address,uint256)', [_owner,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('burn(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.setApprovalForAll = {\n+ sendTransactionAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.setApprovalForAll.estimateGasAsync.bind(self, _operator, _approved))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_operator, _approved) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_operator, _approved, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom2 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom2.estimateGasAsync.bind(self, _from, _to, _tokenId, _data))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId, _data) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, _data, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isApprovedForAll = {\n+ callAsync: function (_owner, _operator, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [_owner,\n+ _operator\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ DummyERC721TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _name, _symbol) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, DummyERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults, _name, _symbol)];\n+ });\n+ });\n+ };\n+ DummyERC721TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _name, _symbol) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_name,\n+ _symbol\n+ ], base_contract_1.BaseContract._bigNumberToString), 2), _name = _a[0], _symbol = _a[1];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_name,\n+ _symbol\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"DummyERC721Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new DummyERC721TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_name,\n+ _symbol\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return DummyERC721TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.DummyERC721TokenContract = DummyERC721TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=dummy_erc721_token.js.map\n\\ No newline at end of file" + }, + { + "sha": "d0b0eff0a07d9fe790551b5b733adb8524df3906", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dummy_erc721_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dummy_erc721_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dummy_erc721_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "61ea2e7ffee45d3c8fd5182ba65e30234495d3c0", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts", + "status": "added", + "additions": 199, + "deletions": 0, + "changes": 199, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,199 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class DutchAuctionContract extends BaseContract {\n+ getAuctionDetails: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ beginTimeSeconds: BigNumber;\n+ endTimeSeconds: BigNumber;\n+ beginAmount: BigNumber;\n+ endAmount: BigNumber;\n+ currentAmount: BigNumber;\n+ currentTimeSeconds: BigNumber;\n+ }>;\n+ };\n+ matchOrders: {\n+ sendTransactionAsync(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string, txData?: Partial): Promise;\n+ estimateGasAsync(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string): string;\n+ callAsync(buyOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, sellOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, buySignature: string, sellSignature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ left: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ right: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ leftMakerAssetSpreadAmount: BigNumber;\n+ }>;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=dutch_auction.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "37a0e33f77265946c71b8f12f81ee2dd215aebec", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dutch_auction.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dutch_auction.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,oBAAqB,SAAQ,YAAY;IAC3C,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2EtB;IACK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsGhB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,GACtB,OAAO,CAAC,oBAAoB,CAAC;WAUZ,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,GACtB,OAAO,CAAC,oBAAoB,CAAC;gBA6BpB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "5809f6df7c6a0a08abd992828ebbc36af909eef0", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js", + "status": "added", + "additions": 311, + "deletions": 0, + "changes": 311, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,311 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var DutchAuctionContract = /** @class */ (function (_super) {\n+ __extends(DutchAuctionContract, _super);\n+ function DutchAuctionContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'DutchAuction', abi, address, supportedProvider, txDefaults) || this;\n+ _this.getAuctionDetails = {\n+ sendTransactionAsync: function (order, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.getAuctionDetails.estimateGasAsync.bind(self, order))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (order, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (order) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (order, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))', [order\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuctionDetails((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.matchOrders = {\n+ sendTransactionAsync: function (buyOrder, sellOrder, buySignature, sellSignature, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.matchOrders.estimateGasAsync.bind(self, buyOrder, sellOrder, buySignature, sellSignature))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (buyOrder, sellOrder, buySignature, sellSignature, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (buyOrder, sellOrder, buySignature, sellSignature) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (buyOrder, sellOrder, buySignature, sellSignature, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)', [buyOrder,\n+ sellOrder,\n+ buySignature,\n+ sellSignature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ DutchAuctionContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _exchange) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, DutchAuctionContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange)];\n+ });\n+ });\n+ };\n+ DutchAuctionContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _exchange) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_exchange\n+ ], base_contract_1.BaseContract._bigNumberToString), 1), _exchange = _a[0];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_exchange\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"DutchAuction successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new DutchAuctionContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_exchange\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return DutchAuctionContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.DutchAuctionContract = DutchAuctionContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=dutch_auction.js.map\n\\ No newline at end of file" + }, + { + "sha": "ad74e3eb29d8ee956e1613b2dffed365db74ab02", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/dutch_auction.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"dutch_auction.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/dutch_auction.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "532e412d689eaed0b27ca9284d5981714ef7307e", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts", + "status": "added", + "additions": 62, + "deletions": 0, + "changes": 62, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,62 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC20ProxyEventArgs = ERC20ProxyAuthorizedAddressAddedEventArgs | ERC20ProxyAuthorizedAddressRemovedEventArgs;\n+export declare enum ERC20ProxyEvents {\n+ AuthorizedAddressAdded = \"AuthorizedAddressAdded\",\n+ AuthorizedAddressRemoved = \"AuthorizedAddressRemoved\"\n+}\n+export interface ERC20ProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface ERC20ProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export declare class ERC20ProxyContract extends BaseContract {\n+ addAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorities: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string, index: BigNumber): string;\n+ callAsync(target: string, index: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getProxyId: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorized: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAuthorizedAddresses: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc20_proxy.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "c6584a6bb33565bcdcfbf3052f3fd56d7d74d9ae", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_proxy.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_proxy.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,mBAAmB,GACzB,yCAAyC,GACzC,2CAA2C,CAAC;AAElD,oBAAY,gBAAgB;IACxB,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;CACxD;AAED,MAAM,WAAW,yCAA0C,SAAQ,cAAc;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,2CAA4C,SAAQ,cAAc;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,kBAAmB,SAAQ,YAAY;IACzC,oBAAoB;;;;;MA2EzB;IACK,WAAW;;MA2BhB;IACK,uBAAuB;;;;;MA2E5B;IACK,KAAK;;MAyBV;IACK,8BAA8B;;;;;MAoFnC;IACK,UAAU;;MAyBf;IACK,UAAU;;MA2Bf;IACK,sBAAsB;;MAyB3B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;WASV,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;gBAyBlB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "b83d3f661742d6c1a4a9c656cfdd4a4a6c0fc2c0", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js", + "status": "added", + "additions": 570, + "deletions": 0, + "changes": 570, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,570 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC20ProxyEvents;\n+(function (ERC20ProxyEvents) {\n+ ERC20ProxyEvents[\"AuthorizedAddressAdded\"] = \"AuthorizedAddressAdded\";\n+ ERC20ProxyEvents[\"AuthorizedAddressRemoved\"] = \"AuthorizedAddressRemoved\";\n+})(ERC20ProxyEvents = exports.ERC20ProxyEvents || (exports.ERC20ProxyEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC20ProxyContract = /** @class */ (function (_super) {\n+ __extends(ERC20ProxyContract, _super);\n+ function ERC20ProxyContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC20Proxy', abi, address, supportedProvider, txDefaults) || this;\n+ _this.addAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorities = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorities(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target, index))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target, index) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, index, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getProxyId = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getProxyId()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getProxyId()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorized = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorized(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorized(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAuthorizedAddresses = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC20ProxyContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC20ProxyContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC20ProxyContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC20Proxy successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC20ProxyContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC20ProxyContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC20ProxyContract = ERC20ProxyContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc20_proxy.js.map\n\\ No newline at end of file" + }, + { + "sha": "54b25eab5fb2ae38ca6e2dd316bad221b977b82f", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_proxy.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_proxy.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_proxy.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "ad35ed5462ec077fb0c1715d19dcb0fc4dc89754", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts", + "status": "added", + "additions": 52, + "deletions": 0, + "changes": 52, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,52 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC20TokenEventArgs = ERC20TokenTransferEventArgs | ERC20TokenApprovalEventArgs;\n+export declare enum ERC20TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\"\n+}\n+export interface ERC20TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface ERC20TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export declare class ERC20TokenContract extends BaseContract {\n+ approve: {\n+ sendTransactionAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_spender: string, _value: BigNumber): string;\n+ callAsync(_spender: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string;\n+ callAsync(_from: string, _to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _value: BigNumber): string;\n+ callAsync(_to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(_owner: string, _spender: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc20_token.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "93136337176e00c984fba23b99abe9f5fc8f04ed", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,mBAAmB,GACzB,2BAA2B,GAC3B,2BAA2B,CAAC;AAElC,oBAAY,gBAAgB;IACxB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACxB;AAED,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,kBAAmB,SAAQ,YAAY;IACzC,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,SAAS;;MA2Bd;IACK,QAAQ;;;;;MAoFb;IACK,SAAS;;MA6Bd;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;WASV,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;gBAyBlB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "bb173bb962edd44ea30bc054c1b5a77bc2d03fcd", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js", + "status": "added", + "additions": 456, + "deletions": 0, + "changes": 456, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,456 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC20TokenEvents;\n+(function (ERC20TokenEvents) {\n+ ERC20TokenEvents[\"Transfer\"] = \"Transfer\";\n+ ERC20TokenEvents[\"Approval\"] = \"Approval\";\n+})(ERC20TokenEvents = exports.ERC20TokenEvents || (exports.ERC20TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC20TokenContract = /** @class */ (function (_super) {\n+ __extends(ERC20TokenContract, _super);\n+ function ERC20TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC20Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.approve = {\n+ sendTransactionAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _spender, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_spender, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_spender, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (_owner, _spender, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner,\n+ _spender\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC20TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC20TokenContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC20TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC20Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC20TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC20TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC20TokenContract = ERC20TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc20_token.js.map\n\\ No newline at end of file" + }, + { + "sha": "4d030067eb550f7b703e695be863f8129e6c2a61", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc20_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc20_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc20_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "bed91f0f424406f8137c6e60d0487e58e7c84b69", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts", + "status": "added", + "additions": 62, + "deletions": 0, + "changes": 62, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,62 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC721ProxyEventArgs = ERC721ProxyAuthorizedAddressAddedEventArgs | ERC721ProxyAuthorizedAddressRemovedEventArgs;\n+export declare enum ERC721ProxyEvents {\n+ AuthorizedAddressAdded = \"AuthorizedAddressAdded\",\n+ AuthorizedAddressRemoved = \"AuthorizedAddressRemoved\"\n+}\n+export interface ERC721ProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface ERC721ProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export declare class ERC721ProxyContract extends BaseContract {\n+ addAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorities: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string, index: BigNumber): string;\n+ callAsync(target: string, index: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getProxyId: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorized: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAuthorizedAddresses: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc721_proxy.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "3c31fe9d2a210dc8c79df21c8863f83b6d330ad3", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_proxy.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_proxy.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,oBAAoB,GAC1B,0CAA0C,GAC1C,4CAA4C,CAAC;AAEnD,oBAAY,iBAAiB;IACzB,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;CACxD;AAED,MAAM,WAAW,0CAA2C,SAAQ,cAAc;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4CAA6C,SAAQ,cAAc;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,mBAAoB,SAAQ,YAAY;IAC1C,oBAAoB;;;;;MA2EzB;IACK,WAAW;;MA2BhB;IACK,uBAAuB;;;;;MA2E5B;IACK,KAAK;;MAyBV;IACK,8BAA8B;;;;;MAoFnC;IACK,UAAU;;MAyBf;IACK,UAAU;;MA2Bf;IACK,sBAAsB;;MAyB3B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;WASX,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;gBAyBnB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "1ae7b1b4ffaa56286edfb7d14578639dc49fc811", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js", + "status": "added", + "additions": 570, + "deletions": 0, + "changes": 570, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,570 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC721ProxyEvents;\n+(function (ERC721ProxyEvents) {\n+ ERC721ProxyEvents[\"AuthorizedAddressAdded\"] = \"AuthorizedAddressAdded\";\n+ ERC721ProxyEvents[\"AuthorizedAddressRemoved\"] = \"AuthorizedAddressRemoved\";\n+})(ERC721ProxyEvents = exports.ERC721ProxyEvents || (exports.ERC721ProxyEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC721ProxyContract = /** @class */ (function (_super) {\n+ __extends(ERC721ProxyContract, _super);\n+ function ERC721ProxyContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC721Proxy', abi, address, supportedProvider, txDefaults) || this;\n+ _this.addAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorities = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorities(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target, index))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target, index) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, index, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getProxyId = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getProxyId()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getProxyId()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorized = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorized(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorized(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAuthorizedAddresses = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC721ProxyContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC721ProxyContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC721ProxyContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC721Proxy successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC721ProxyContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC721ProxyContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC721ProxyContract = ERC721ProxyContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc721_proxy.js.map\n\\ No newline at end of file" + }, + { + "sha": "5dbb46e7fde2b84299d59a08cfeb2cb3a094795b", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_proxy.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_proxy.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_proxy.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uGAAuG;AACvG,oCAAoC;AACpC,mCAAmC;AACnC,mDAAiD;AAEjD,mCAA2E;AAE3E,iDAA+C;AAC/C,+BAAiC;AACjC,0BAA4B;AAO5B,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,sEAAiD,CAAA;IACjD,0EAAqD,CAAA;AACzD,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAaD,0BAA0B;AAC1B,2CAA2C;AAC3C,sCAAsC;AACtC;IAAyC,uCAAY;IA2ejD,6BAAY,GAAgB,EAAE,OAAe,EAAE,iBAAoC,EAAE,UAA4B;QAAjH,YACI,kBAAM,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAEpE;QA7eM,0BAAoB,GAAG;YACpB,oBAAoB,EAA1B,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iCAC/F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAC3C,IAAI,EACJ,MAAM,CACT,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iCAC/F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAAc;gBAEd,IAAM,IAAI,GAAG,IAAkC,CAAC;gBAChD,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iBAC7G,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,+BAA+B,EAAE,CAAC,MAAM;iCAC3F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,CAAC;gCAErE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,iBAAW,GAAG;YACX,SAAS,EAAf,UACI,OAAkB,EAClB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,CAAC,OAAO;iCACnF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;gCAE5D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,6BAAuB,GAAG;YACvB,oBAAoB,EAA1B,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iCAClG,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAC9C,IAAI,EACJ,MAAM,CACT,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iCAClG,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAAc;gBAEd,IAAM,IAAI,GAAG,IAAkC,CAAC;gBAChD,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iBAChH,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,MAAM;iCAC9F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;gCAExE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,WAAK,GAAG;YACL,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gCAClC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gCAE/C,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,oCAA8B,GAAG;YAC9B,oBAAoB,EAA1B,UACI,MAAc,EACd,KAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oCAClH,KAAK;iCACJ,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,IAAI,CACrD,IAAI,EACJ,MAAM,EACN,KAAK,CACR,CACJ,EAAA;;gCAZK,kBAAkB,GAAG,SAY1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAAc,EACd,KAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oCAClH,KAAK;iCACJ,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAAc,EACd,KAAgB;gBAEhB,IAAM,IAAI,GAAG,IAAkC,CAAC;gBAChD,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oBAChI,KAAK;iBACJ,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAAc,EACd,KAAgB,EAChB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iDAAiD,EAAE,CAAC,MAAM;oCAC9G,KAAK;iCACJ,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,iDAAiD,CAAC,CAAC;gCAEvF,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,gBAAU,GAAG;YACV,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gCACvC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;gCAEpD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,gBAAU,GAAG;YACV,SAAS,EAAf,UACI,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,CAAC,OAAO;iCAClF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;gCAE3D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,4BAAsB,GAAG;YACtB,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;gCACnD,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;gCAEhE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,uBAAiB,GAAG;YACjB,oBAAoB,EAA1B,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CACxC,IAAI,EACJ,QAAQ,CACX,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,QAAgB;gBAEhB,IAAM,IAAI,GAAG,IAAkC,CAAC;gBAChD,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iBAC5G,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,QAAgB,EAChB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAkC,CAAC;gCAC1C,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC1F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;gCAElE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QA8CE,kBAAU,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;;IACnG,CAAC;IA9CmB,6CAAyB,GAA7C,UACI,QAAmD,EACnD,iBAAoC,EACpC,UAA2B;;;;gBAE3B,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACrE;gBACK,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;gBACxC,sBAAO,mBAAmB,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAG,EAAC;;;KACjF;IACmB,+BAAW,GAA/B,UACI,QAAgB,EAChB,GAAgB,EAChB,iBAAoC,EACpC,UAA2B;;;;;;wBAErB,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC/D,cAAc,GAAG,4BAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;wBAC1D,4BAAY,CAAC,sBAAsB,CACpC,cAAc,CAAC,MAAM,EACrB,EAAE,EACF,4BAAY,CAAC,kBAAkB,CAClC,CAAC;wBACI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACxC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;wBAClC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACzC,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAC;wBACnB,qBAAM,4BAAY,CAAC,2BAA2B,CACrE,EAAC,IAAI,EAAE,MAAM,EAAC,EACd,UAAU,EACV,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CACjD,EAAA;;wBAJK,kBAAkB,GAAG,SAI1B;wBACc,qBAAM,WAAW,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;wBAAnE,MAAM,GAAG,SAA0D;wBACzE,gBAAQ,CAAC,GAAG,CAAC,sBAAoB,MAAQ,CAAC,CAAC;wBACzB,qBAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAA;;wBAAlE,SAAS,GAAG,SAAsD;wBACxE,gBAAQ,CAAC,GAAG,CAAC,0CAAwC,SAAS,CAAC,eAAiB,CAAC,CAAC;wBAC5E,gBAAgB,GAAG,IAAI,mBAAmB,CAAC,GAAG,EAAE,SAAS,CAAC,eAAyB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBACjH,gBAAgB,CAAC,eAAe,GAAG,EAAE,CAAC;wBACtC,sBAAO,gBAAgB,EAAC;;;;KAC3B;IAKL,0BAAC;AAAD,CAAC,AA/eD,CAAyC,4BAAY,GA+epD,CAAC,qCAAqC;AA/e1B,kDAAmB;AAgfhC,kCAAkC\"}\n\\ No newline at end of file" + }, + { + "sha": "a0b2982b1ec695e780cf82f9faea97e806428c79", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts", + "status": "added", + "additions": 73, + "deletions": 0, + "changes": 73, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,73 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ERC721TokenEventArgs = ERC721TokenTransferEventArgs | ERC721TokenApprovalEventArgs | ERC721TokenApprovalForAllEventArgs;\n+export declare enum ERC721TokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\",\n+ ApprovalForAll = \"ApprovalForAll\"\n+}\n+export interface ERC721TokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _tokenId: BigNumber;\n+}\n+export interface ERC721TokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _approved: string;\n+ _tokenId: BigNumber;\n+}\n+export interface ERC721TokenApprovalForAllEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _operator: string;\n+ _approved: boolean;\n+}\n+export declare class ERC721TokenContract extends BaseContract {\n+ getApproved: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_approved: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_approved: string, _tokenId: BigNumber): string;\n+ callAsync(_approved: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom1: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ ownerOf: {\n+ callAsync(_tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ setApprovalForAll: {\n+ sendTransactionAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(_operator: string, _approved: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_operator: string, _approved: boolean): string;\n+ callAsync(_operator: string, _approved: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ safeTransferFrom2: {\n+ sendTransactionAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _tokenId: BigNumber, _data: string): string;\n+ callAsync(_from: string, _to: string, _tokenId: BigNumber, _data: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isApprovedForAll: {\n+ callAsync(_owner: string, _operator: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=erc721_token.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "e0d5dbf93f1c526afef93ad1d03e9395dc585353", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,oBAAoB,GAC1B,4BAA4B,GAC5B,4BAA4B,GAC5B,kCAAkC,CAAC;AAEzC,oBAAY,iBAAiB;IACzB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;CACpC;AAED,MAAM,WAAW,4BAA6B,SAAQ,cAAc;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,4BAA6B,SAAQ,cAAc;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,kCAAmC,SAAQ,cAAc;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACtB;AAMD,qBAAa,mBAAoB,SAAQ,YAAY;IAC1C,WAAW;;MA2BhB;IACK,OAAO;;;;;MAoFZ;IACK,YAAY;;;;;MA6FjB;IACK,iBAAiB;;;;;MA6FtB;IACK,OAAO;;MA2BZ;IACK,SAAS;;MA2Bd;IACK,iBAAiB;;;;;MAoFtB;IACK,iBAAiB;;;;;MAsGtB;IACK,gBAAgB;;MA6BrB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;WASX,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,mBAAmB,CAAC;gBAyBnB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "edbf650a701d469eaed1ddeb389fc6d26da6f71b", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js", + "status": "added", + "additions": 655, + "deletions": 0, + "changes": 655, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,655 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ERC721TokenEvents;\n+(function (ERC721TokenEvents) {\n+ ERC721TokenEvents[\"Transfer\"] = \"Transfer\";\n+ ERC721TokenEvents[\"Approval\"] = \"Approval\";\n+ ERC721TokenEvents[\"ApprovalForAll\"] = \"ApprovalForAll\";\n+})(ERC721TokenEvents = exports.ERC721TokenEvents || (exports.ERC721TokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ERC721TokenContract = /** @class */ (function (_super) {\n+ __extends(ERC721TokenContract, _super);\n+ function ERC721TokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ERC721Token', abi, address, supportedProvider, txDefaults) || this;\n+ _this.getApproved = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getApproved(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getApproved(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _approved, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_approved, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_approved, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_approved, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_approved,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom1 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom1.estimateGasAsync.bind(self, _from, _to, _tokenId))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.ownerOf = {\n+ callAsync: function (_tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('ownerOf(uint256)', [_tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('ownerOf(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.setApprovalForAll = {\n+ sendTransactionAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.setApprovalForAll.estimateGasAsync.bind(self, _operator, _approved))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_operator, _approved, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_operator, _approved) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_operator, _approved, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('setApprovalForAll(address,bool)', [_operator,\n+ _approved\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('setApprovalForAll(address,bool)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.safeTransferFrom2 = {\n+ sendTransactionAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.safeTransferFrom2.estimateGasAsync.bind(self, _from, _to, _tokenId, _data))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _tokenId, _data, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _tokenId, _data) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _tokenId, _data, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('safeTransferFrom(address,address,uint256,bytes)', [_from,\n+ _to,\n+ _tokenId,\n+ _data\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('safeTransferFrom(address,address,uint256,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.isApprovedForAll = {\n+ callAsync: function (_owner, _operator, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isApprovedForAll(address,address)', [_owner,\n+ _operator\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isApprovedForAll(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ERC721TokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ERC721TokenContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ERC721TokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ERC721Token successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ERC721TokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ERC721TokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ERC721TokenContract = ERC721TokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=erc721_token.js.map\n\\ No newline at end of file" + }, + { + "sha": "468201016e2b3792020504a9a09f636ace671b33", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/erc721_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"erc721_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/erc721_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "8ed91de62f164f5ac83f122850cd1fa2a7d2e82b", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts", + "status": "added", + "additions": 1041, + "deletions": 0, + "changes": 1041, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,1041 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ExchangeEventArgs = ExchangeSignatureValidatorApprovalEventArgs | ExchangeFillEventArgs | ExchangeCancelEventArgs | ExchangeCancelUpToEventArgs | ExchangeAssetProxyRegisteredEventArgs;\n+export declare enum ExchangeEvents {\n+ SignatureValidatorApproval = \"SignatureValidatorApproval\",\n+ Fill = \"Fill\",\n+ Cancel = \"Cancel\",\n+ CancelUpTo = \"CancelUpTo\",\n+ AssetProxyRegistered = \"AssetProxyRegistered\"\n+}\n+export interface ExchangeSignatureValidatorApprovalEventArgs extends DecodedLogArgs {\n+ signerAddress: string;\n+ validatorAddress: string;\n+ approved: boolean;\n+}\n+export interface ExchangeFillEventArgs extends DecodedLogArgs {\n+ makerAddress: string;\n+ feeRecipientAddress: string;\n+ takerAddress: string;\n+ senderAddress: string;\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ orderHash: string;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+}\n+export interface ExchangeCancelEventArgs extends DecodedLogArgs {\n+ makerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ orderHash: string;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+}\n+export interface ExchangeCancelUpToEventArgs extends DecodedLogArgs {\n+ makerAddress: string;\n+ senderAddress: string;\n+ orderEpoch: BigNumber;\n+}\n+export interface ExchangeAssetProxyRegisteredEventArgs extends DecodedLogArgs {\n+ id: string;\n+ assetProxy: string;\n+}\n+export declare class ExchangeContract extends BaseContract {\n+ filled: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchFillOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ cancelled: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ preSign: {\n+ sendTransactionAsync(hash: string, signerAddress: string, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(hash: string, signerAddress: string, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(hash: string, signerAddress: string, signature: string): string;\n+ callAsync(hash: string, signerAddress: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ matchOrders: {\n+ sendTransactionAsync(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string, txData?: Partial): Promise;\n+ estimateGasAsync(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string): string;\n+ callAsync(leftOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, rightOrder: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, leftSignature: string, rightSignature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ left: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ right: {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ };\n+ leftMakerAssetSpreadAmount: BigNumber;\n+ }>;\n+ };\n+ fillOrderNoThrow: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ assetProxies: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchCancelOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchFillOrKillOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ cancelOrdersUpTo: {\n+ sendTransactionAsync(targetOrderEpoch: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(targetOrderEpoch: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(targetOrderEpoch: BigNumber): string;\n+ callAsync(targetOrderEpoch: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ batchFillOrdersNoThrow: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmounts: BigNumber[], signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ getAssetProxy: {\n+ callAsync(assetProxyId: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transactions: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ fillOrKillOrder: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ setSignatureValidatorApproval: {\n+ sendTransactionAsync(validatorAddress: string, approval: boolean, txData?: Partial): Promise;\n+ estimateGasAsync(validatorAddress: string, approval: boolean, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(validatorAddress: string, approval: boolean): string;\n+ callAsync(validatorAddress: string, approval: boolean, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowedValidators: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketSellOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ getOrdersInfo: {\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }[]>;\n+ };\n+ preSigned: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ isValidSignature: {\n+ callAsync(hash: string, signerAddress: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketBuyOrdersNoThrow: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ fillOrder: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAssetFillAmount: BigNumber, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ executeTransaction: {\n+ sendTransactionAsync(salt: BigNumber, signerAddress: string, data: string, signature: string, txData?: Partial): Promise;\n+ estimateGasAsync(salt: BigNumber, signerAddress: string, data: string, signature: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(salt: BigNumber, signerAddress: string, data: string, signature: string): string;\n+ callAsync(salt: BigNumber, signerAddress: string, data: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ registerAssetProxy: {\n+ sendTransactionAsync(assetProxy: string, txData?: Partial): Promise;\n+ estimateGasAsync(assetProxy: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetProxy: string): string;\n+ callAsync(assetProxy: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getOrderInfo: {\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }>;\n+ };\n+ cancelOrder: {\n+ sendTransactionAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ estimateGasAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }): string;\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ orderEpoch: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ ZRX_ASSET_DATA: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketSellOrdersNoThrow: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ EIP712_DOMAIN_HASH: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketBuyOrders: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[]): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }>;\n+ };\n+ currentContextAddress: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ VERSION: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _zrxAssetData: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _zrxAssetData: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=exchange.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "7fbc078b52c8c2a2a137516cb177e95df4991571", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"exchange.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/exchange.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "c184dc4b0575242456223e9e1586e331e0ae208b", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js", + "status": "added", + "additions": 2129, + "deletions": 0, + "changes": 2129, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2e0dac0201b3f4fae77d839e91b6f5e941b9abf4", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/exchange.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"exchange.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/exchange.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "01fc9ce0b5740090698f702440bce26c75b8e8a4", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts", + "status": "added", + "additions": 265, + "deletions": 0, + "changes": 265, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,265 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class ForwarderContract extends BaseContract {\n+ marketBuyOrdersWithEth: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], makerAssetFillAmount: BigNumber, signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }, {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }]>;\n+ };\n+ withdrawAsset: {\n+ sendTransactionAsync(assetData: string, amount: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(assetData: string, amount: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetData: string, amount: BigNumber): string;\n+ callAsync(assetData: string, amount: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ marketSellOrdersWithEth: {\n+ sendTransactionAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ estimateGasAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string): string;\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], signatures: string[], feeOrders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], feeSignatures: string[], feePercentage: BigNumber, feeRecipient: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }, {\n+ makerAssetFilledAmount: BigNumber;\n+ takerAssetFilledAmount: BigNumber;\n+ makerFeePaid: BigNumber;\n+ takerFeePaid: BigNumber;\n+ }]>;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string, _wethAssetData: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string, _wethAssetData: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=forwarder.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "d07d03a21eda04a3e3f73b773b1fb8f52a182b70", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"forwarder.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/forwarder.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,iBAAkB,SAAQ,YAAY;IACxC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAiI3B;IACK,aAAa;;;;;MAoFlB;IACK,KAAK;;MAyBV;IACK,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyH5B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAC3B,OAAO,CAAC,iBAAiB,CAAC;WAYT,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAC3B,OAAO,CAAC,iBAAiB,CAAC;gBAqCjB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "3de7ca0af0018419270e8ec3ce5384cc4aacc486", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js", + "status": "added", + "additions": 528, + "deletions": 0, + "changes": 528, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,528 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ForwarderContract = /** @class */ (function (_super) {\n+ __extends(ForwarderContract, _super);\n+ function ForwarderContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'Forwarder', abi, address, supportedProvider, txDefaults) || this;\n+ _this.marketBuyOrdersWithEth = {\n+ sendTransactionAsync: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.marketBuyOrdersWithEth.estimateGasAsync.bind(self, orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (orders, makerAssetFillAmount, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ makerAssetFillAmount,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('marketBuyOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.withdrawAsset = {\n+ sendTransactionAsync: function (assetData, amount, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.withdrawAsset.estimateGasAsync.bind(self, assetData, amount))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (assetData, amount, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (assetData, amount) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (assetData, amount, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdrawAsset(bytes,uint256)', [assetData,\n+ amount\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('withdrawAsset(bytes,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.marketSellOrdersWithEth = {\n+ sendTransactionAsync: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.marketSellOrdersWithEth.estimateGasAsync.bind(self, orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ console.log(txDataWithDefaults);\n+ // const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);\n+ return [2 /*return*/, '123'];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (orders, signatures, feeOrders, feeSignatures, feePercentage, feeRecipient, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)', [orders,\n+ signatures,\n+ feeOrders,\n+ feeSignatures,\n+ feePercentage,\n+ feeRecipient\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('marketSellOrdersWithEth((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes[],uint256,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ForwarderContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _exchange, _zrxAssetData, _wethAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ForwarderContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange, _zrxAssetData, _wethAssetData)];\n+ });\n+ });\n+ };\n+ ForwarderContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _exchange, _zrxAssetData, _wethAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_exchange,\n+ _zrxAssetData,\n+ _wethAssetData\n+ ], base_contract_1.BaseContract._bigNumberToString), 3), _exchange = _a[0], _zrxAssetData = _a[1], _wethAssetData = _a[2];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_exchange,\n+ _zrxAssetData,\n+ _wethAssetData\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"Forwarder successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ForwarderContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_exchange,\n+ _zrxAssetData,\n+ _wethAssetData\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ForwarderContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ForwarderContract = ForwarderContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=forwarder.js.map\n\\ No newline at end of file" + }, + { + "sha": "977c82833f35cfd6ffd2ac35e32a5937b7d68846", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/forwarder.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"forwarder.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/forwarder.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uGAAuG;AACvG,oCAAoC;AACpC,mCAAmC;AACnC,mDAAiD;AAEjD,mCAA2E;AAE3E,iDAA+C;AAC/C,+BAAiC;AACjC,0BAA4B;AAC5B,mCAAmC;AAGnC,0BAA0B;AAC1B,2CAA2C;AAC3C,sCAAsC;AACtC;IAAuC,qCAAY;IAwf/C,2BAAY,GAAgB,EAAE,OAAe,EAAE,iBAAoC,EAAE,UAA4B;QAAjH,YACI,kBAAM,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAElE;QA1fM,4BAAsB,GAAG;YACtB,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,MAAmC;gBAAnC,uBAAA,EAAA,WAAmC;;;;;;gCAE7B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iQAAiQ,EAAE,CAAC,MAAM;oCAClU,oBAAoB;oCACpB,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAC7C,IAAI,EACJ,MAAM,EACN,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,CACf,CACJ,EAAA;;gCAjBK,kBAAkB,GAAG,SAiB1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iQAAiQ,EAAE,CAAC,MAAM;oCAClU,oBAAoB;oCACpB,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB;gBAEpB,IAAM,IAAI,GAAG,IAAgC,CAAC;gBAC9C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,iQAAiQ,EAAE,CAAC,MAAM;oBAChV,oBAAoB;oBACpB,UAAU;oBACV,SAAS;oBACT,aAAa;oBACb,aAAa;oBACb,YAAY;iBACX,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,oBAA+B,EAC/B,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,iQAAiQ,EAAE,CAAC,MAAM;oCAC9T,oBAAoB;oCACpB,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,iQAAiQ,CAAC,CAAC;gCAEvS,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,mBAAa,GAAG;YACb,oBAAoB,EAA1B,UACI,SAAiB,EACjB,MAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,EAAE,CAAC,SAAS;oCAClG,MAAM;iCACL,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CACpC,IAAI,EACJ,SAAS,EACT,MAAM,CACT,CACJ,EAAA;;gCAZK,kBAAkB,GAAG,SAY1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,SAAiB,EACjB,MAAiB,EACjB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,EAAE,CAAC,SAAS;oCAClG,MAAM;iCACL,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,SAAiB,EACjB,MAAiB;gBAEjB,IAAM,IAAI,GAAG,IAAgC,CAAC;gBAC9C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,EAAE,CAAC,SAAS;oBAChH,MAAM;iBACL,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,SAAiB,EACjB,MAAiB,EACjB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,8BAA8B,EAAE,CAAC,SAAS;oCAC9F,MAAM;iCACL,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAAC;gCAEpE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,WAAK,GAAG;YACL,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gCAClC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gCAE/C,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,6BAAuB,GAAG;YACvB,oBAAoB,EAA1B,UACI,MAA2S,EAC3S,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,MAAmC;gBAAnC,uBAAA,EAAA,WAAmC;;;;;;gCAE7B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0PAA0P,EAAE,CAAC,MAAM;oCAC3T,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAC9C,IAAI,EACJ,MAAM,EACN,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,CACf,CACJ,EAAA;;gCAhBK,kBAAkB,GAAG,SAgB1B;gCACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;gCAC/B,mFAAmF;gCACnF,sBAAO,KAAK,EAAC;;;;aAChB;YACK,gBAAgB,EAAtB,UACI,MAA2S,EAC3S,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0PAA0P,EAAE,CAAC,MAAM;oCAC3T,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,MAA2S,EAC3S,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB;gBAEpB,IAAM,IAAI,GAAG,IAAgC,CAAC;gBAC9C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,0PAA0P,EAAE,CAAC,MAAM;oBACzU,UAAU;oBACV,SAAS;oBACT,aAAa;oBACb,aAAa;oBACb,YAAY;iBACX,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,MAA2S,EAC3S,UAAoB,EACpB,SAA8S,EAC9S,aAAuB,EACvB,aAAwB,EACxB,YAAoB,EACpB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0PAA0P,EAAE,CAAC,MAAM;oCACvT,UAAU;oCACV,SAAS;oCACT,aAAa;oCACb,aAAa;oCACb,YAAY;iCACX,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,0PAA0P,CAAC,CAAC;gCAEhS,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,uBAAiB,GAAG;YACjB,oBAAoB,EAA1B,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CACxC,IAAI,EACJ,QAAQ,CACX,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,QAAgB,EAChB,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC9F,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,QAAgB;gBAEhB,IAAM,IAAI,GAAG,IAAgC,CAAC;gBAC9C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iBAC5G,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,QAAgB,EAChB,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAAgC,CAAC;gCACxC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,QAAQ;iCAC1F,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;gCAElE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QAmEE,kBAAU,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;;IACnG,CAAC;IAnEmB,2CAAyB,GAA7C,UACI,QAAmD,EACnD,iBAAoC,EACpC,UAA2B,EACvB,SAAiB,EACjB,aAAqB,EACrB,cAAsB;;;;gBAE1B,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACrE;gBACK,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;gBACxC,sBAAO,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAC3F,aAAa,EACb,cAAc,CACb,EAAC;;;KACG;IACmB,6BAAW,GAA/B,UACI,QAAgB,EAChB,GAAgB,EAChB,iBAAoC,EACpC,UAA2B,EACvB,SAAiB,EACjB,aAAqB,EACrB,cAAsB;;;;;;wBAEpB,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC/D,cAAc,GAAG,4BAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;wBAC/D;;;+EAUC,EAVA,iBAAS,EAClB,qBAAa,EACb,sBAAc,CAQJ;wBACI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACxC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;wBAClC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS;4BAC7D,aAAa;4BACb,cAAc;yBACb,CAAC,CAAC;wBACW,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAC;wBACnB,qBAAM,4BAAY,CAAC,2BAA2B,CACrE,EAAC,IAAI,EAAE,MAAM,EAAC,EACd,UAAU,EACV,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CACjD,EAAA;;wBAJK,kBAAkB,GAAG,SAI1B;wBACc,qBAAM,WAAW,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;wBAAnE,MAAM,GAAG,SAA0D;wBACzE,gBAAQ,CAAC,GAAG,CAAC,sBAAoB,MAAQ,CAAC,CAAC;wBACzB,qBAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAA;;wBAAlE,SAAS,GAAG,SAAsD;wBACxE,gBAAQ,CAAC,GAAG,CAAC,wCAAsC,SAAS,CAAC,eAAiB,CAAC,CAAC;wBAC1E,gBAAgB,GAAG,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,eAAyB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC/G,gBAAgB,CAAC,eAAe,GAAG,CAAC,SAAS;4BACrD,aAAa;4BACb,cAAc;yBACb,CAAC;wBACM,sBAAO,gBAAgB,EAAC;;;;KAC3B;IAKL,wBAAC;AAAD,CAAC,AA5fD,CAAuC,4BAAY,GA4flD,CAAC,qCAAqC;AA5f1B,8CAAiB;AA6f9B,kCAAkC\"}\n\\ No newline at end of file" + }, + { + "sha": "c66e0b9c5415ddb266013a29325f9c86df3b5695", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts", + "status": "added", + "additions": 12, + "deletions": 0, + "changes": 12, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,12 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class IValidatorContract extends BaseContract {\n+ isValidSignature: {\n+ callAsync(hash: string, signerAddress: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=i_validator.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "d4a6c106597e7085514252c01826d29c517a0ffe", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_validator.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_validator.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE7K,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,kBAAmB,SAAQ,YAAY;IACzC,gBAAgB;;MA+BrB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;WASV,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,kBAAkB,CAAC;gBAyBlB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "ea92ccde8a8fc0e487e1a4cc1fb4e3a6a83a2199", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js", + "status": "added", + "additions": 159, + "deletions": 0, + "changes": 159, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,159 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var IValidatorContract = /** @class */ (function (_super) {\n+ __extends(IValidatorContract, _super);\n+ function IValidatorContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'IValidator', abi, address, supportedProvider, txDefaults) || this;\n+ _this.isValidSignature = {\n+ callAsync: function (hash, signerAddress, signature, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isValidSignature(bytes32,address,bytes)', [hash,\n+ signerAddress,\n+ signature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,address,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ IValidatorContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, IValidatorContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ IValidatorContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"IValidator successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new IValidatorContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return IValidatorContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.IValidatorContract = IValidatorContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=i_validator.js.map\n\\ No newline at end of file" + }, + { + "sha": "dd64632ce1dd2ca52ddcfa7642396dacc4668e1b", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_validator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_validator.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_validator.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "1748e3800565fa9a5b4de65795a23e6aebe1da2c", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts", + "status": "added", + "additions": 12, + "deletions": 0, + "changes": 12, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,12 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class IWalletContract extends BaseContract {\n+ isValidSignature: {\n+ callAsync(hash: string, signature: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=i_wallet.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "fc84b38c57d618f7efe1f9e435e4ffb1a3cc0a4f", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_wallet.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_wallet.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE7K,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,eAAgB,SAAQ,YAAY;IACtC,gBAAgB;;MA6BrB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC;WASP,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC;gBAyBf,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "273ee09ef2c75dc7db0d2b604c795ce10b8e9f41", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js", + "status": "added", + "additions": 158, + "deletions": 0, + "changes": 158, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,158 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var IWalletContract = /** @class */ (function (_super) {\n+ __extends(IWalletContract, _super);\n+ function IWalletContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'IWallet', abi, address, supportedProvider, txDefaults) || this;\n+ _this.isValidSignature = {\n+ callAsync: function (hash, signature, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('isValidSignature(bytes32,bytes)', [hash,\n+ signature\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('isValidSignature(bytes32,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ IWalletContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, IWalletContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ IWalletContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"IWallet successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new IWalletContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return IWalletContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.IWalletContract = IWalletContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=i_wallet.js.map\n\\ No newline at end of file" + }, + { + "sha": "f74c3f91963c94cade6d68940ebf25fbcdc88ee4", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/i_wallet.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"i_wallet.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/i_wallet.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "023416dc8d2ba971ae5344ccbc387a1d757bc52d", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts", + "status": "added", + "additions": 79, + "deletions": 0, + "changes": 79, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,79 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type MultiAssetProxyEventArgs = MultiAssetProxyAuthorizedAddressAddedEventArgs | MultiAssetProxyAuthorizedAddressRemovedEventArgs | MultiAssetProxyAssetProxyRegisteredEventArgs;\n+export declare enum MultiAssetProxyEvents {\n+ AuthorizedAddressAdded = \"AuthorizedAddressAdded\",\n+ AuthorizedAddressRemoved = \"AuthorizedAddressRemoved\",\n+ AssetProxyRegistered = \"AssetProxyRegistered\"\n+}\n+export interface MultiAssetProxyAuthorizedAddressAddedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface MultiAssetProxyAuthorizedAddressRemovedEventArgs extends DecodedLogArgs {\n+ target: string;\n+ caller: string;\n+}\n+export interface MultiAssetProxyAssetProxyRegisteredEventArgs extends DecodedLogArgs {\n+ id: string;\n+ assetProxy: string;\n+}\n+export declare class MultiAssetProxyContract extends BaseContract {\n+ assetProxies: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ addAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorities: {\n+ callAsync(index_0: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAssetProxy: {\n+ callAsync(assetProxyId: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddress: {\n+ sendTransactionAsync(target: string, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string): string;\n+ callAsync(target: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ owner: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ removeAuthorizedAddressAtIndex: {\n+ sendTransactionAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(target: string, index: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(target: string, index: BigNumber): string;\n+ callAsync(target: string, index: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getProxyId: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ authorized: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ registerAssetProxy: {\n+ sendTransactionAsync(assetProxy: string, txData?: Partial): Promise;\n+ estimateGasAsync(assetProxy: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(assetProxy: string): string;\n+ callAsync(assetProxy: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getAuthorizedAddresses: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferOwnership: {\n+ sendTransactionAsync(newOwner: string, txData?: Partial): Promise;\n+ estimateGasAsync(newOwner: string, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(newOwner: string): string;\n+ callAsync(newOwner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=multi_asset_proxy.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "4ba97b39ff0983fff980efaaad9cccdc7690f629", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"multi_asset_proxy.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/multi_asset_proxy.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,wBAAwB,GAC9B,8CAA8C,GAC9C,gDAAgD,GAChD,4CAA4C,CAAC;AAEnD,oBAAY,qBAAqB;IAC7B,sBAAsB,2BAA2B;IACjD,wBAAwB,6BAA6B;IACrD,oBAAoB,yBAAyB;CAChD;AAED,MAAM,WAAW,8CAA+C,SAAQ,cAAc;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gDAAiD,SAAQ,cAAc;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,4CAA6C,SAAQ,cAAc;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,qBAAa,uBAAwB,SAAQ,YAAY;IAC9C,YAAY;;MA2BjB;IACK,oBAAoB;;;;;MA2EzB;IACK,WAAW;;MA2BhB;IACK,aAAa;;MA2BlB;IACK,uBAAuB;;;;;MA2E5B;IACK,KAAK;;MAyBV;IACK,8BAA8B;;;;;MAoFnC;IACK,UAAU;;MAyBf;IACK,UAAU;;MA2Bf;IACK,kBAAkB;;;;;MA2EvB;IACK,sBAAsB;;MAyB3B;IACK,iBAAiB;;;;;MA2EtB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,uBAAuB,CAAC;WASf,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,uBAAuB,CAAC;gBAyBvB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "486bed5e49a36f92da3ec0826da5d6ffb4219af0", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js", + "status": "added", + "additions": 700, + "deletions": 0, + "changes": 700, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,700 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var MultiAssetProxyEvents;\n+(function (MultiAssetProxyEvents) {\n+ MultiAssetProxyEvents[\"AuthorizedAddressAdded\"] = \"AuthorizedAddressAdded\";\n+ MultiAssetProxyEvents[\"AuthorizedAddressRemoved\"] = \"AuthorizedAddressRemoved\";\n+ MultiAssetProxyEvents[\"AssetProxyRegistered\"] = \"AssetProxyRegistered\";\n+})(MultiAssetProxyEvents = exports.MultiAssetProxyEvents || (exports.MultiAssetProxyEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var MultiAssetProxyContract = /** @class */ (function (_super) {\n+ __extends(MultiAssetProxyContract, _super);\n+ function MultiAssetProxyContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'MultiAssetProxy', abi, address, supportedProvider, txDefaults) || this;\n+ _this.assetProxies = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('assetProxies(bytes4)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('assetProxies(bytes4)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.addAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.addAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('addAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('addAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorities = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorities(uint256)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorities(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAssetProxy = {\n+ callAsync: function (assetProxyId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAssetProxy(bytes4)', [assetProxyId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAssetProxy(bytes4)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddress = {\n+ sendTransactionAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddress.estimateGasAsync.bind(self, target))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddress(address)', [target\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddress(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.owner = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('owner()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('owner()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.removeAuthorizedAddressAtIndex = {\n+ sendTransactionAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.removeAuthorizedAddressAtIndex.estimateGasAsync.bind(self, target, index))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (target, index, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (target, index) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (target, index, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('removeAuthorizedAddressAtIndex(address,uint256)', [target,\n+ index\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('removeAuthorizedAddressAtIndex(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getProxyId = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getProxyId()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getProxyId()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.authorized = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('authorized(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('authorized(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.registerAssetProxy = {\n+ sendTransactionAsync: function (assetProxy, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.registerAssetProxy.estimateGasAsync.bind(self, assetProxy))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (assetProxy, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (assetProxy) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (assetProxy, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('registerAssetProxy(address)', [assetProxy\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('registerAssetProxy(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getAuthorizedAddresses = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getAuthorizedAddresses()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getAuthorizedAddresses()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferOwnership = {\n+ sendTransactionAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferOwnership.estimateGasAsync.bind(self, newOwner))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (newOwner, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (newOwner) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (newOwner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferOwnership(address)', [newOwner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferOwnership(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ MultiAssetProxyContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, MultiAssetProxyContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ MultiAssetProxyContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"MultiAssetProxy successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new MultiAssetProxyContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return MultiAssetProxyContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.MultiAssetProxyContract = MultiAssetProxyContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=multi_asset_proxy.js.map\n\\ No newline at end of file" + }, + { + "sha": "12503ccfc4394128496f326fa68c00a4a85e8839", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/multi_asset_proxy.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"multi_asset_proxy.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/multi_asset_proxy.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "dcd88491840814007013fd43e65d703b06525d06", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts", + "status": "added", + "additions": 127, + "deletions": 0, + "changes": 127, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,127 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare class OrderValidatorContract extends BaseContract {\n+ getOrderAndTraderInfo: {\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAddress: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }, {\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }]>;\n+ };\n+ getBalanceAndAllowance: {\n+ callAsync(target: string, assetData: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[BigNumber, BigNumber]>;\n+ };\n+ getOrdersAndTradersInfo: {\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAddresses: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[{\n+ orderStatus: number;\n+ orderHash: string;\n+ orderTakerAssetFilledAmount: BigNumber;\n+ }[], {\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }[]]>;\n+ };\n+ getTradersInfo: {\n+ callAsync(orders: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }[], takerAddresses: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }[]>;\n+ };\n+ getERC721TokenOwner: {\n+ callAsync(token: string, tokenId: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ getBalancesAndAllowances: {\n+ callAsync(target: string, assetData: string[], callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<[BigNumber[], BigNumber[]]>;\n+ };\n+ getTraderInfo: {\n+ callAsync(order: {\n+ makerAddress: string;\n+ takerAddress: string;\n+ feeRecipientAddress: string;\n+ senderAddress: string;\n+ makerAssetAmount: BigNumber;\n+ takerAssetAmount: BigNumber;\n+ makerFee: BigNumber;\n+ takerFee: BigNumber;\n+ expirationTimeSeconds: BigNumber;\n+ salt: BigNumber;\n+ makerAssetData: string;\n+ takerAssetData: string;\n+ }, takerAddress: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise<{\n+ makerBalance: BigNumber;\n+ makerAllowance: BigNumber;\n+ takerBalance: BigNumber;\n+ takerAllowance: BigNumber;\n+ makerZrxBalance: BigNumber;\n+ makerZrxAllowance: BigNumber;\n+ takerZrxBalance: BigNumber;\n+ takerZrxAllowance: BigNumber;\n+ }>;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, _exchange: string, _zrxAssetData: string): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=order_validator.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "bbdb4c368c63226961beb1a03b13380a4ab22757", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"order_validator.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/order_validator.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAA6B,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAUnD,qBAAa,sBAAuB,SAAQ,YAAY;IAC7C,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6B1B;IACK,sBAAsB;;MA6B3B;IACK,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6B5B;IACK,cAAc;;;;;;;;;;;;;;;;;;;;;;;;MA6BnB;IACK,mBAAmB;;MA6BxB;IACK,wBAAwB;;MA6B7B;IACK,aAAa;;;;;;;;;;;;;;;;;;;;;;;;MA6BlB;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GAC1B,OAAO,CAAC,sBAAsB,CAAC;WAWd,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GAC1B,OAAO,CAAC,sBAAsB,CAAC;gBAiCtB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "4dc6e383730c01cf9f5ca67651ea31d555d758f8", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js", + "status": "added", + "additions": 348, + "deletions": 0, + "changes": 348, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,348 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+// tslint:enable:no-unused-variable\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var OrderValidatorContract = /** @class */ (function (_super) {\n+ __extends(OrderValidatorContract, _super);\n+ function OrderValidatorContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'OrderValidator', abi, address, supportedProvider, txDefaults) || this;\n+ _this.getOrderAndTraderInfo = {\n+ callAsync: function (order, takerAddress, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', [order,\n+ takerAddress\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getOrderAndTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getBalanceAndAllowance = {\n+ callAsync: function (target, assetData, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getBalanceAndAllowance(address,bytes)', [target,\n+ assetData\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getBalanceAndAllowance(address,bytes)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getOrdersAndTradersInfo = {\n+ callAsync: function (orders, takerAddresses, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', [orders,\n+ takerAddresses\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getOrdersAndTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTradersInfo = {\n+ callAsync: function (orders, takerAddresses, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])', [orders,\n+ takerAddresses\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTradersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address[])');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getERC721TokenOwner = {\n+ callAsync: function (token, tokenId, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getERC721TokenOwner(address,uint256)', [token,\n+ tokenId\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getERC721TokenOwner(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getBalancesAndAllowances = {\n+ callAsync: function (target, assetData, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getBalancesAndAllowances(address,bytes[])', [target,\n+ assetData\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getBalancesAndAllowances(address,bytes[])');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.getTraderInfo = {\n+ callAsync: function (order, takerAddress, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)', [order,\n+ takerAddress\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('getTraderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ OrderValidatorContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults, _exchange, _zrxAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, OrderValidatorContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange, _zrxAssetData)];\n+ });\n+ });\n+ };\n+ OrderValidatorContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults, _exchange, _zrxAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ _a = __read(base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [_exchange,\n+ _zrxAssetData\n+ ], base_contract_1.BaseContract._bigNumberToString), 2), _exchange = _a[0], _zrxAssetData = _a[1];\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, [_exchange,\n+ _zrxAssetData\n+ ]);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _b.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _b.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _b.sent();\n+ utils_1.logUtils.log(\"OrderValidator successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new OrderValidatorContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [_exchange,\n+ _zrxAssetData\n+ ];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return OrderValidatorContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.OrderValidatorContract = OrderValidatorContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=order_validator.js.map\n\\ No newline at end of file" + }, + { + "sha": "a02c58b10df8e996b67ef092b87770c9c0317092", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/order_validator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"order_validator.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/order_validator.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "2438f6cd1670ad5a67a6189d68a77347b142e9ac", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts", + "status": "added", + "additions": 83, + "deletions": 0, + "changes": 83, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,83 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type WETH9EventArgs = WETH9ApprovalEventArgs | WETH9TransferEventArgs | WETH9DepositEventArgs | WETH9WithdrawalEventArgs;\n+export declare enum WETH9Events {\n+ Approval = \"Approval\",\n+ Transfer = \"Transfer\",\n+ Deposit = \"Deposit\",\n+ Withdrawal = \"Withdrawal\"\n+}\n+export interface WETH9ApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export interface WETH9TransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface WETH9DepositEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _value: BigNumber;\n+}\n+export interface WETH9WithdrawalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _value: BigNumber;\n+}\n+export declare class WETH9Contract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(guy: string, wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(guy: string, wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(guy: string, wad: BigNumber): string;\n+ callAsync(guy: string, wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(src: string, dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(src: string, dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(src: string, dst: string, wad: BigNumber): string;\n+ callAsync(src: string, dst: string, wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ withdraw: {\n+ sendTransactionAsync(wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(wad: BigNumber): string;\n+ callAsync(wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ decimals: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(index_0: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(dst: string, wad: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(dst: string, wad: BigNumber): string;\n+ callAsync(dst: string, wad: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ deposit: {\n+ sendTransactionAsync(txData?: Partial): Promise;\n+ estimateGasAsync(txData?: Partial): Promise;\n+ getABIEncodedTransactionData(): string;\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(index_0: string, index_1: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=weth9.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "520ff691fd0ddc2c622cba31cf6861191e7cab06", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"weth9.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/weth9.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,cAAc,GACpB,sBAAsB,GACtB,sBAAsB,GACtB,qBAAqB,GACrB,wBAAwB,CAAC;AAE/B,oBAAY,WAAW;IACnB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,UAAU,eAAe;CAC5B;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,aAAc,SAAQ,YAAY;IACpC,IAAI;;MAyBT;IACK,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,QAAQ;;;;;MA2Eb;IACK,QAAQ;;MAyBb;IACK,SAAS;;MA2Bd;IACK,MAAM;;MAyBX;IACK,QAAQ;;;;;MAoFb;IACK,OAAO;;;;;MAkEZ;IACK,SAAS;;MA6Bd;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;WASL,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;gBAyBb,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "a340bf0a7ddef0667a58e500bd3e9ab1e6979155", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js", + "status": "added", + "additions": 682, + "deletions": 0, + "changes": 682, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,682 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var WETH9Events;\n+(function (WETH9Events) {\n+ WETH9Events[\"Approval\"] = \"Approval\";\n+ WETH9Events[\"Transfer\"] = \"Transfer\";\n+ WETH9Events[\"Deposit\"] = \"Deposit\";\n+ WETH9Events[\"Withdrawal\"] = \"Withdrawal\";\n+})(WETH9Events = exports.WETH9Events || (exports.WETH9Events = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var WETH9Contract = /** @class */ (function (_super) {\n+ __extends(WETH9Contract, _super);\n+ function WETH9Contract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'WETH9', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (guy, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, guy, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (guy, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (guy, wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (guy, wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [guy,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (src, dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, src, dst, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (src, dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (src, dst, wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (src, dst, wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [src,\n+ dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.withdraw = {\n+ sendTransactionAsync: function (wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.withdraw.estimateGasAsync.bind(self, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('withdraw(uint256)', [wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('withdraw(uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.decimals = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('decimals()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('decimals()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (index_0, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [index_0\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, dst, wad))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (dst, wad, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (dst, wad) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (dst, wad, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [dst,\n+ wad\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.deposit = {\n+ sendTransactionAsync: function (txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('deposit()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.deposit.estimateGasAsync.bind(self))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('deposit()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function () {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('deposit()', []);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('deposit()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('deposit()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (index_0, index_1, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [index_0,\n+ index_1\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ WETH9Contract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, WETH9Contract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ WETH9Contract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"WETH9 successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new WETH9Contract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return WETH9Contract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.WETH9Contract = WETH9Contract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=weth9.js.map\n\\ No newline at end of file" + }, + { + "sha": "03ea0f0acd458930b8fd0008c4b2324fc270fc3a", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/weth9.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"weth9.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/weth9.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uGAAuG;AACvG,oCAAoC;AACpC,mCAAmC;AACnC,mDAAiD;AAEjD,mCAA2E;AAE3E,iDAA+C;AAC/C,+BAAiC;AACjC,0BAA4B;AAS5B,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;IACrB,kCAAmB,CAAA;IACnB,wCAAyB,CAAA;AAC7B,CAAC,EALW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAKtB;AAyBD,0BAA0B;AAC1B,2CAA2C;AAC3C,sCAAsC;AACtC;IAAmC,iCAAY;IAqmB3C,uBAAY,GAAgB,EAAE,OAAe,EAAE,iBAAoC,EAAE,UAA4B;QAAjH,YACI,kBAAM,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,SAE9D;QAvmBM,UAAI,GAAG;YACJ,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gCACjC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gCAE9C,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,aAAO,GAAG;YACP,oBAAoB,EAA1B,UACI,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,GAAG;oCACxF,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAC9B,IAAI,EACJ,GAAG,EACH,GAAG,CACN,CACJ,EAAA;;gCAZK,kBAAkB,GAAG,SAY1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,GAAG;oCACxF,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,GAAW,EACX,GAAc;gBAEd,IAAM,IAAI,GAAG,IAA4B,CAAC;gBAC1C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,GAAG;oBACtG,GAAG;iBACF,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,GAAW,EACX,GAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,CAAC,GAAG;oCACpF,GAAG;iCACF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;gCAEhE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,iBAAW,GAAG;YACX,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gCACxC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;gCAErD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,kBAAY,GAAG;YACZ,oBAAoB,EAA1B,UACI,GAAW,EACX,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,CAAC,GAAG;oCACrG,GAAG;oCACH,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CACnC,IAAI,EACJ,GAAG,EACH,GAAG,EACH,GAAG,CACN,CACJ,EAAA;;gCAbK,kBAAkB,GAAG,SAa1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,GAAW,EACX,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,CAAC,GAAG;oCACrG,GAAG;oCACH,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,GAAW,EACX,GAAW,EACX,GAAc;gBAEd,IAAM,IAAI,GAAG,IAA4B,CAAC;gBAC1C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,CAAC,GAAG;oBACnH,GAAG;oBACH,GAAG;iBACF,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,GAAW,EACX,GAAW,EACX,GAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,uCAAuC,EAAE,CAAC,GAAG;oCACjG,GAAG;oCACH,GAAG;iCACF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,uCAAuC,CAAC,CAAC;gCAE7E,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,cAAQ,GAAG;YACR,oBAAoB,EAA1B,UACI,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,GAAG;iCAChF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAC/B,IAAI,EACJ,GAAG,CACN,CACJ,EAAA;;gCAXK,kBAAkB,GAAG,SAW1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,GAAG;iCAChF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,GAAc;gBAEd,IAAM,IAAI,GAAG,IAA4B,CAAC;gBAC1C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,GAAG;iBAC9F,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,GAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,GAAG;iCAC5E,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;gCAEzD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,cAAQ,GAAG;YACR,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gCACrC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gCAElD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,eAAS,GAAG;YACT,SAAS,EAAf,UACI,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,CAAC,OAAO;iCACjF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;gCAE1D,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,YAAM,GAAG;YACN,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gCACnC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gCAEhD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,cAAQ,GAAG;YACR,oBAAoB,EAA1B,UACI,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,GAAG;oCACzF,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAC/B,IAAI,EACJ,GAAG,EACH,GAAG,CACN,CACJ,EAAA;;gCAZK,kBAAkB,GAAG,SAY1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,GAAW,EACX,GAAc,EACd,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,GAAG;oCACzF,GAAG;iCACF,CAAC,CAAC;gCACgC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B,UACI,GAAW,EACX,GAAc;gBAEd,IAAM,IAAI,GAAG,IAA4B,CAAC;gBAC1C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,GAAG;oBACvG,GAAG;iBACF,CAAC,CAAC;gBACK,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,GAAW,EACX,GAAc,EACd,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,CAAC,GAAG;oCACrF,GAAG;iCACF,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC;gCAEjE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,aAAO,GAAG;YACP,oBAAoB,EAA1B,UACI,MAAmC;gBAAnC,uBAAA,EAAA,WAAmC;;;;;;gCAE7B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gCACtC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAC9B,IAAI,CACP,CACJ,EAAA;;gCAVK,kBAAkB,GAAG,SAU1B;gCACc,qBAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;gCAAzE,MAAM,GAAG,SAAgE;gCAC/E,sBAAO,MAAM,EAAC;;;;aACjB;YACK,gBAAgB,EAAtB,UACI,MAA4B;gBAA5B,uBAAA,EAAA,WAA4B;;;;;;gCAEtB,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gCACtC,qBAAM,4BAAY,CAAC,2BAA2B,YAEjE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,MAAM,IACT,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,kBAAkB,GAAG,SAO1B;gCACW,qBAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAA;;gCAAlE,GAAG,GAAG,SAA4D;gCACxE,sBAAO,GAAG,EAAC;;;;aACd;YACD,4BAA4B,EAA5B;gBAEI,IAAM,IAAI,GAAG,IAA4B,CAAC;gBAC1C,IAAM,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC/E,OAAO,yBAAyB,CAAC;YACrC,CAAC;YACK,SAAS,EAAf,UACI,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gCACpC,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gCAEjD,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QACK,eAAS,GAAG;YACT,SAAS,EAAf,UACI,OAAe,EACf,OAAe,EACf,QAAgC,EAChC,YAAyB;gBADzB,yBAAA,EAAA,aAAgC;;;;;;gCAI1B,IAAI,GAAG,IAA4B,CAAC;gCACpC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,4BAA4B,EAAE,CAAC,OAAO;oCAC1F,OAAO;iCACN,CAAC,CAAC;gCAC8B,qBAAM,4BAAY,CAAC,2BAA2B,YAEnE,EAAE,EAAE,IAAI,CAAC,OAAO,IACb,QAAQ,IACX,IAAI,EAAE,WAAW,KAErB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAC1C,EAAA;;gCAPK,oBAAoB,GAAG,SAO5B;gCACqB,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAA;;gCAArF,aAAa,GAAG,SAAqE;gCAC3F,4BAAY,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC;gCACzD,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;gCAElE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CACnD,aAAa,CAAC,CAAC;gCACb,+BAA+B;gCAC/B,sBAAO,MAAM,EAAC;;;;aACjB;SACJ,CAAC;QA8CE,kBAAU,CAAC,OAAO,CAAC,KAAI,EAAE,CAAC,gCAAgC,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;;IACnG,CAAC;IA9CmB,uCAAyB,GAA7C,UACI,QAAmD,EACnD,iBAAoC,EACpC,UAA2B;;;;gBAE3B,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACxC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACrE;gBACK,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;gBAC/D,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvD,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;gBACxC,sBAAO,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAG,EAAC;;;KAC3E;IACmB,yBAAW,GAA/B,UACI,QAAgB,EAChB,GAAgB,EAChB,iBAAoC,EACpC,UAA2B;;;;;;wBAErB,QAAQ,GAAG,qBAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;wBAC/D,cAAc,GAAG,4BAAY,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;wBAC1D,4BAAY,CAAC,sBAAsB,CACpC,cAAc,CAAC,MAAM,EACrB,EAAE,EACF,4BAAY,CAAC,kBAAkB,CAClC,CAAC;wBACI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBACxC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;wBAClC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACzC,WAAW,GAAG,IAAI,0BAAW,CAAC,QAAQ,CAAC,CAAC;wBACnB,qBAAM,4BAAY,CAAC,2BAA2B,CACrE,EAAC,IAAI,EAAE,MAAM,EAAC,EACd,UAAU,EACV,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CACjD,EAAA;;wBAJK,kBAAkB,GAAG,SAI1B;wBACc,qBAAM,WAAW,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAA;;wBAAnE,MAAM,GAAG,SAA0D;wBACzE,gBAAQ,CAAC,GAAG,CAAC,sBAAoB,MAAQ,CAAC,CAAC;wBACzB,qBAAM,WAAW,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAA;;wBAAlE,SAAS,GAAG,SAAsD;wBACxE,gBAAQ,CAAC,GAAG,CAAC,oCAAkC,SAAS,CAAC,eAAiB,CAAC,CAAC;wBACtE,gBAAgB,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,eAAyB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;wBAC3G,gBAAgB,CAAC,eAAe,GAAG,EAAE,CAAC;wBACtC,sBAAO,gBAAgB,EAAC;;;;KAC3B;IAKL,oBAAC;AAAD,CAAC,AAzmBD,CAAmC,4BAAY,GAymB9C,CAAC,qCAAqC;AAzmB1B,sCAAa;AA0mB1B,kCAAkC\"}\n\\ No newline at end of file" + }, + { + "sha": "845352b288ecf542ef193c8544e1c06a51c026d3", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts", + "status": "added", + "additions": 61, + "deletions": 0, + "changes": 61, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,61 @@\n+import { BaseContract } from '@0x/base-contract';\n+import { BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, TxData, SupportedProvider } from 'ethereum-types';\n+import { BigNumber } from '@0x/utils';\n+import { SimpleContractArtifact } from '@0x/types';\n+export declare type ZRXTokenEventArgs = ZRXTokenTransferEventArgs | ZRXTokenApprovalEventArgs;\n+export declare enum ZRXTokenEvents {\n+ Transfer = \"Transfer\",\n+ Approval = \"Approval\"\n+}\n+export interface ZRXTokenTransferEventArgs extends DecodedLogArgs {\n+ _from: string;\n+ _to: string;\n+ _value: BigNumber;\n+}\n+export interface ZRXTokenApprovalEventArgs extends DecodedLogArgs {\n+ _owner: string;\n+ _spender: string;\n+ _value: BigNumber;\n+}\n+export declare class ZRXTokenContract extends BaseContract {\n+ name: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ approve: {\n+ sendTransactionAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_spender: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_spender: string, _value: BigNumber): string;\n+ callAsync(_spender: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ totalSupply: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transferFrom: {\n+ sendTransactionAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_from: string, _to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_from: string, _to: string, _value: BigNumber): string;\n+ callAsync(_from: string, _to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ decimals: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ balanceOf: {\n+ callAsync(_owner: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ symbol: {\n+ callAsync(callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ transfer: {\n+ sendTransactionAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ estimateGasAsync(_to: string, _value: BigNumber, txData?: Partial): Promise;\n+ getABIEncodedTransactionData(_to: string, _value: BigNumber): string;\n+ callAsync(_to: string, _value: BigNumber, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ allowance: {\n+ callAsync(_owner: string, _spender: string, callData?: Partial, defaultBlock?: number | BlockParamLiteral | undefined): Promise;\n+ };\n+ static deployFrom0xArtifactAsync(artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ static deployAsync(bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial): Promise;\n+ constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial);\n+}\n+//# sourceMappingURL=zrx_token.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "0c6d583f91c8aa44f81ae567df770df17d90308e", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"zrx_token.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/zrx_token.ts\"],\"names\":[],\"mappings\":\"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAc,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAa,MAAM,EAAiB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7K,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAMnD,oBAAY,iBAAiB,GACvB,yBAAyB,GACzB,yBAAyB,CAAC;AAEhC,oBAAY,cAAc;IACtB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACxB;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACrB;AAMD,qBAAa,gBAAiB,SAAQ,YAAY;IACvC,IAAI;;MAyBT;IACK,OAAO;;;;;MAoFZ;IACK,WAAW;;MAyBhB;IACK,YAAY;;;;;MA6FjB;IACK,QAAQ;;MAyBb;IACK,SAAS;;MA2Bd;IACK,MAAM;;MAyBX;IACK,QAAQ;;;;;MAoFb;IACK,SAAS;;MA6Bd;WACkB,yBAAyB,CACzC,QAAQ,EAAE,gBAAgB,GAAG,sBAAsB,EACnD,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,gBAAgB,CAAC;WASR,WAAW,CAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,GAC5B,OAAO,CAAC,gBAAgB,CAAC;gBAyBhB,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAIpH\"}\n\\ No newline at end of file" + }, + { + "sha": "3ff660ea5f8fc1ad8a9a83593c219fed8553b56d", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js", + "status": "added", + "additions": 534, + "deletions": 0, + "changes": 534, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,534 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+var __assign = (this && this.__assign) || function () {\n+ __assign = Object.assign || function(t) {\n+ for (var s, i = 1, n = arguments.length; i < n; i++) {\n+ s = arguments[i];\n+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n+ t[p] = s[p];\n+ }\n+ return t;\n+ };\n+ return __assign.apply(this, arguments);\n+};\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name\n+// tslint:disable:no-unused-variable\n+// tslint:disable:no-unbound-method\n+var base_contract_1 = require(\"@0x/base-contract\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var ethers = require(\"ethers\");\n+var _ = require(\"lodash\");\n+var ZRXTokenEvents;\n+(function (ZRXTokenEvents) {\n+ ZRXTokenEvents[\"Transfer\"] = \"Transfer\";\n+ ZRXTokenEvents[\"Approval\"] = \"Approval\";\n+})(ZRXTokenEvents = exports.ZRXTokenEvents || (exports.ZRXTokenEvents = {}));\n+/* istanbul ignore next */\n+// tslint:disable:no-parameter-reassignment\n+// tslint:disable-next-line:class-name\n+var ZRXTokenContract = /** @class */ (function (_super) {\n+ __extends(ZRXTokenContract, _super);\n+ function ZRXTokenContract(abi, address, supportedProvider, txDefaults) {\n+ var _this = _super.call(this, 'ZRXToken', abi, address, supportedProvider, txDefaults) || this;\n+ _this.name = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('name()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('name()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.approve = {\n+ sendTransactionAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.approve.estimateGasAsync.bind(self, _spender, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_spender, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_spender, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_spender, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('approve(address,uint256)', [_spender,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('approve(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.totalSupply = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('totalSupply()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('totalSupply()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transferFrom = {\n+ sendTransactionAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transferFrom.estimateGasAsync.bind(self, _from, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_from, _to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_from, _to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_from, _to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transferFrom(address,address,uint256)', [_from,\n+ _to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transferFrom(address,address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.decimals = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('decimals()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('decimals()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.balanceOf = {\n+ callAsync: function (_owner, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('balanceOf(address)', [_owner\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('balanceOf(address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.symbol = {\n+ callAsync: function (callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('symbol()', []);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('symbol()');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.transfer = {\n+ sendTransactionAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, txHash;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults(), self.transfer.estimateGasAsync.bind(self, _to, _value))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ return [2 /*return*/, txHash];\n+ }\n+ });\n+ });\n+ },\n+ estimateGasAsync: function (_to, _value, txData) {\n+ if (txData === void 0) { txData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, txDataWithDefaults, gas;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, txData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.estimateGasAsync(txDataWithDefaults)];\n+ case 2:\n+ gas = _a.sent();\n+ return [2 /*return*/, gas];\n+ }\n+ });\n+ });\n+ },\n+ getABIEncodedTransactionData: function (_to, _value) {\n+ var self = this;\n+ var abiEncodedTransactionData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return abiEncodedTransactionData;\n+ },\n+ callAsync: function (_to, _value, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('transfer(address,uint256)', [_to,\n+ _value\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('transfer(address,uint256)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ _this.allowance = {\n+ callAsync: function (_owner, _spender, callData, defaultBlock) {\n+ if (callData === void 0) { callData = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var self, encodedData, callDataWithDefaults, rawCallResult, abiEncoder, result;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ self = this;\n+ encodedData = self._strictEncodeArguments('allowance(address,address)', [_owner,\n+ _spender\n+ ]);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync(__assign({ to: self.address }, callData, { data: encodedData }), self._web3Wrapper.getContractDefaults())];\n+ case 1:\n+ callDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock)];\n+ case 2:\n+ rawCallResult = _a.sent();\n+ base_contract_1.BaseContract._throwIfRevertWithReasonCallResult(rawCallResult);\n+ abiEncoder = self._lookupAbiEncoder('allowance(address,address)');\n+ result = abiEncoder.strictDecodeReturnValue(rawCallResult);\n+ // tslint:enable boolean-naming\n+ return [2 /*return*/, result];\n+ }\n+ });\n+ });\n+ },\n+ };\n+ utils_1.classUtils.bindAll(_this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n+ return _this;\n+ }\n+ ZRXTokenContract.deployFrom0xArtifactAsync = function (artifact, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, bytecode, abi;\n+ return __generator(this, function (_a) {\n+ if (_.isUndefined(artifact.compilerOutput)) {\n+ throw new Error('Compiler output not found in the artifact file');\n+ }\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ bytecode = artifact.compilerOutput.evm.bytecode.object;\n+ abi = artifact.compilerOutput.abi;\n+ return [2 /*return*/, ZRXTokenContract.deployAsync(bytecode, abi, provider, txDefaults)];\n+ });\n+ });\n+ };\n+ ZRXTokenContract.deployAsync = function (bytecode, abi, supportedProvider, txDefaults) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var provider, constructorAbi, iface, deployInfo, txData, web3Wrapper, txDataWithDefaults, txHash, txReceipt, contractInstance;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ constructorAbi = base_contract_1.BaseContract._lookupConstructorAbi(abi);\n+ base_contract_1.BaseContract._formatABIDataItemList(constructorAbi.inputs, [], base_contract_1.BaseContract._bigNumberToString);\n+ iface = new ethers.utils.Interface(abi);\n+ deployInfo = iface.deployFunction;\n+ txData = deployInfo.encode(bytecode, []);\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(provider);\n+ return [4 /*yield*/, base_contract_1.BaseContract._applyDefaultsToTxDataAsync({ data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper))];\n+ case 1:\n+ txDataWithDefaults = _a.sent();\n+ return [4 /*yield*/, web3Wrapper.sendTransactionAsync(txDataWithDefaults)];\n+ case 2:\n+ txHash = _a.sent();\n+ utils_1.logUtils.log(\"transactionHash: \" + txHash);\n+ return [4 /*yield*/, web3Wrapper.awaitTransactionSuccessAsync(txHash)];\n+ case 3:\n+ txReceipt = _a.sent();\n+ utils_1.logUtils.log(\"ZRXToken successfully deployed at \" + txReceipt.contractAddress);\n+ contractInstance = new ZRXTokenContract(abi, txReceipt.contractAddress, provider, txDefaults);\n+ contractInstance.constructorArgs = [];\n+ return [2 /*return*/, contractInstance];\n+ }\n+ });\n+ });\n+ };\n+ return ZRXTokenContract;\n+}(base_contract_1.BaseContract)); // tslint:disable:max-file-line-count\n+exports.ZRXTokenContract = ZRXTokenContract;\n+// tslint:enable:no-unbound-method\n+//# sourceMappingURL=zrx_token.js.map\n\\ No newline at end of file" + }, + { + "sha": "f659acb28f52bf725aa3d9968e01203b72ce2298", + "filename": "packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/generated-wrappers/zrx_token.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"zrx_token.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/generated-wrappers/zrx_token.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "9d24af4fe739f4ba39fc6d3a1a1832a8a937700e", + "filename": "packages/abi-gen-wrappers/lib/src/index.d.ts", + "status": "added", + "additions": 17, + "deletions": 0, + "changes": 17, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,17 @@\n+export * from './generated-wrappers/asset_proxy_owner';\n+export * from './generated-wrappers/dummy_erc20_token';\n+export * from './generated-wrappers/dummy_erc721_token';\n+export * from './generated-wrappers/dutch_auction';\n+export * from './generated-wrappers/erc20_proxy';\n+export * from './generated-wrappers/erc20_token';\n+export * from './generated-wrappers/erc721_proxy';\n+export * from './generated-wrappers/erc721_token';\n+export * from './generated-wrappers/exchange';\n+export * from './generated-wrappers/forwarder';\n+export * from './generated-wrappers/i_validator';\n+export * from './generated-wrappers/i_wallet';\n+export * from './generated-wrappers/multi_asset_proxy';\n+export * from './generated-wrappers/order_validator';\n+export * from './generated-wrappers/weth9';\n+export * from './generated-wrappers/zrx_token';\n+//# sourceMappingURL=index.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "9d3866457f84ba691c9e6f2a693a58e55d429c04", + "filename": "packages/abi-gen-wrappers/lib/src/index.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC\"}\n\\ No newline at end of file" + }, + { + "sha": "75d38839c9772efa56c66da7d719b22cbdc51f1c", + "filename": "packages/abi-gen-wrappers/lib/src/index.js", + "status": "added", + "additions": 22, + "deletions": 0, + "changes": 22, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,22 @@\n+\"use strict\";\n+function __export(m) {\n+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n+}\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+__export(require(\"./generated-wrappers/asset_proxy_owner\"));\n+__export(require(\"./generated-wrappers/dummy_erc20_token\"));\n+__export(require(\"./generated-wrappers/dummy_erc721_token\"));\n+__export(require(\"./generated-wrappers/dutch_auction\"));\n+__export(require(\"./generated-wrappers/erc20_proxy\"));\n+__export(require(\"./generated-wrappers/erc20_token\"));\n+__export(require(\"./generated-wrappers/erc721_proxy\"));\n+__export(require(\"./generated-wrappers/erc721_token\"));\n+__export(require(\"./generated-wrappers/exchange\"));\n+__export(require(\"./generated-wrappers/forwarder\"));\n+__export(require(\"./generated-wrappers/i_validator\"));\n+__export(require(\"./generated-wrappers/i_wallet\"));\n+__export(require(\"./generated-wrappers/multi_asset_proxy\"));\n+__export(require(\"./generated-wrappers/order_validator\"));\n+__export(require(\"./generated-wrappers/weth9\"));\n+__export(require(\"./generated-wrappers/zrx_token\"));\n+//# sourceMappingURL=index.js.map\n\\ No newline at end of file" + }, + { + "sha": "fd2261e4ef385cbdd4fec7f03c4a4dd24d17e895", + "filename": "packages/abi-gen-wrappers/lib/src/index.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/lib/src/index.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/lib/src/index.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\";;;;;AAAA,4DAAuD;AACvD,4DAAuD;AACvD,6DAAwD;AACxD,wDAAmD;AACnD,sDAAiD;AACjD,sDAAiD;AACjD,uDAAkD;AAClD,uDAAkD;AAClD,mDAA8C;AAC9C,oDAA+C;AAC/C,sDAAiD;AACjD,mDAA8C;AAC9C,4DAAuD;AACvD,0DAAqD;AACrD,gDAA2C;AAC3C,oDAA+C\"}\n\\ No newline at end of file" + }, + { + "sha": "f820c27860973d071098ec41cd38b994a41e8a7b", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/asset_proxy_owner.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -1489,7 +1489,7 @@ _secondsTimeLocked\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('AssetProxyOwner', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('AssetProxyOwner', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "88e2a4bb6d0181b268f67eb8bd243e528d164a9f", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc20_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -823,7 +823,7 @@ _totalSupply\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('DummyERC20Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('DummyERC20Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "fc01d4c8a0a3a3a2fcee606bd84310d27d635412", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/dummy_erc721_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -1001,7 +1001,7 @@ _symbol\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('DummyERC721Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('DummyERC721Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "36c9816ada0af8225e54c6f108e3c41c97169643", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/dutch_auction.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -245,7 +245,7 @@ export class DutchAuctionContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('DutchAuction', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('DutchAuction', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "4bf1cc8240ce9fa9699e792150340f9a6edd4657", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc20_proxy.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -525,7 +525,7 @@ export class ERC20ProxyContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC20Proxy', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC20Proxy', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "737f204b7b6833b5168dadb6e5144bdd2aac1f74", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc20_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -428,7 +428,7 @@ export class ERC20TokenContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC20Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC20Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "a8ce0eebc947c8eba0a419dd81fd19b974fbf9da", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc721_proxy.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -525,7 +525,7 @@ export class ERC721ProxyContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC721Proxy', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC721Proxy', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "666479e1f1fa0d0227233b4a1ecce249b2a4db1a", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/erc721_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -663,7 +663,7 @@ export class ERC721TokenContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ERC721Token', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ERC721Token', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "986f02617395b05748fe8905620714cdb3dd5501", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/exchange.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -2274,7 +2274,7 @@ export class ExchangeContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('Exchange', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('Exchange', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "2e3ba60ffedb1a44fb762e6623dacbdaaa41ff0f", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts", + "status": "modified", + "additions": 4, + "deletions": 3, + "changes": 7, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/forwarder.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -291,8 +291,9 @@ export class ForwarderContract extends BaseContract {\n feeRecipient\n ),\n );\n- const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);\n- return txHash;\n+ console.log(txDataWithDefaults)\n+ // const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults);\n+ return '123';\n },\n async estimateGasAsync(\n orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>,\n@@ -518,7 +519,7 @@ _wethAssetData\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('Forwarder', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('Forwarder', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "4cadd8ed25aab04ebc500cea4bd66b7aa63d7924", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/i_validator.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -91,7 +91,7 @@ export class IValidatorContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('IValidator', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('IValidator', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "491028c2320619ecba35479fe3d0c3f2cbd7388e", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/i_wallet.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -89,7 +89,7 @@ export class IWalletContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('IWallet', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('IWallet', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "76d66120b8aa4c846ccf16fcac22040389e58ad0", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/multi_asset_proxy.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -664,7 +664,7 @@ export class MultiAssetProxyContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('MultiAssetProxy', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('MultiAssetProxy', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "5829909e3b1037c8382e6c96c9f8ba81aa09ff65", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/order_validator.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -283,7 +283,7 @@ _zrxAssetData\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('OrderValidator', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('OrderValidator', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "0f528919f09bc6e947e298f6c8724da7adb628e3", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/weth9.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -663,7 +663,7 @@ export class WETH9Contract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('WETH9', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('WETH9', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "f89c246d656fd98fea4b9c074adcefb22fad012d", + "filename": "packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts", + "status": "modified", + "additions": 1, + "deletions": 1, + "changes": 2, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/abi-gen-wrappers/src/generated-wrappers/zrx_token.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -506,7 +506,7 @@ export class ZRXTokenContract extends BaseContract {\n return contractInstance;\n }\n constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) {\n- super('ZRXToken', abi, address, providerUtils.standardizeOrThrow(supportedProvider), txDefaults);\n+ super('ZRXToken', abi, address, supportedProvider, txDefaults);\n classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']);\n }\n } // tslint:disable:max-file-line-count" + }, + { + "sha": "f10e9ca4639e6957f58f06a33f9ebad881405b15", + "filename": "packages/asset-buyer/lib/src/asset_buyer.d.ts", + "status": "added", + "additions": 109, + "deletions": 0, + "changes": 109, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,109 @@\n+import { SignedOrder } from '@0x/order-utils';\n+import { BigNumber } from '@0x/utils';\n+import { SupportedProvider, ZeroExProvider } from 'ethereum-types';\n+import { AssetBuyerOpts, BuyQuote, BuyQuoteExecutionOpts, BuyQuoteRequestOpts, LiquidityForAssetData, LiquidityRequestOpts, OrderProvider, OrdersAndFillableAmounts } from './types';\n+export declare class AssetBuyer {\n+ readonly provider: ZeroExProvider;\n+ readonly orderProvider: OrderProvider;\n+ readonly networkId: number;\n+ readonly orderRefreshIntervalMs: number;\n+ readonly expiryBufferSeconds: number;\n+ private readonly _contractWrappers;\n+ private readonly _ordersEntryMap;\n+ /**\n+ * Instantiates a new AssetBuyer instance given existing liquidity in the form of orders and feeOrders.\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orders A non-empty array of objects that conform to SignedOrder. All orders must have the same makerAssetData and takerAssetData (WETH).\n+ * @param feeOrders A array of objects that conform to SignedOrder. All orders must have the same makerAssetData (ZRX) and takerAssetData (WETH). Defaults to an empty array.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ static getAssetBuyerForProvidedOrders(supportedProvider: SupportedProvider, orders: SignedOrder[], options?: Partial): AssetBuyer;\n+ /**\n+ * Instantiates a new AssetBuyer instance given a [Standard Relayer API](https://github.com/0xProject/standard-relayer-api) endpoint\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param sraApiUrl The standard relayer API base HTTP url you would like to source orders from.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ static getAssetBuyerForStandardRelayerAPIUrl(supportedProvider: SupportedProvider, sraApiUrl: string, options?: Partial): AssetBuyer;\n+ /**\n+ * Instantiates a new AssetBuyer instance\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orderProvider An object that conforms to OrderProvider, see type for definition.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ constructor(supportedProvider: SupportedProvider, orderProvider: OrderProvider, options?: Partial);\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired assetData.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ getBuyQuoteAsync(assetData: string, assetBuyAmount: BigNumber, options?: Partial): Promise;\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired ERC20 token address.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param tokenAddress The ERC20 token address.\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ getBuyQuoteForERC20TokenAddressAsync(tokenAddress: string, assetBuyAmount: BigNumber, options?: Partial): Promise;\n+ /**\n+ * Returns information about available liquidity for an asset\n+ * Does not factor in slippage or fees\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to LiquidityForAssetData that satisfies the request. See type definition for more information.\n+ */\n+ getLiquidityForAssetDataAsync(assetData: string, options?: Partial): Promise;\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ executeBuyQuoteAsync(buyQuote: BuyQuote, options?: Partial): Promise;\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ mockExecuteBuyQuoteAsync(buyQuote: BuyQuote, options?: Partial): Promise;\n+ /**\n+ * Get the asset data of all assets that are purchaseable with ether token (wETH) in the order provider passed in at init.\n+ *\n+ * @return An array of asset data strings that can be purchased using wETH.\n+ */\n+ getAvailableAssetDatasAsync(): Promise;\n+ /**\n+ * Grab orders from the map, if there is a miss or it is time to refresh, fetch and process the orders\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param shouldForceOrderRefresh If set to true, new orders and state will be fetched instead of waiting for the next orderRefreshIntervalMs.\n+ */\n+ getOrdersAndFillableAmountsAsync(assetData: string, shouldForceOrderRefresh: boolean): Promise;\n+ /**\n+ * Get the assetData that represents the WETH token.\n+ * Will throw if WETH does not exist for the current network.\n+ */\n+ private _getEtherTokenAssetDataOrThrow;\n+ /**\n+ * Get the assetData that represents the ZRX token.\n+ * Will throw if ZRX does not exist for the current network.\n+ */\n+ private _getZrxTokenAssetDataOrThrow;\n+}\n+//# sourceMappingURL=asset_buyer.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "8f86a825a3c8892d4a94a67a2c8fd2b8b94ae0be", + "filename": "packages/asset-buyer/lib/src/asset_buyer.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_buyer.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/asset_buyer.ts\"],\"names\":[],\"mappings\":\"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAiB,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMnE,OAAO,EAEH,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EAC3B,MAAM,SAAS,CAAC;AAajB,qBAAa,UAAU;IACnB,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,sBAAsB,EAAE,MAAM,CAAC;IAC/C,SAAgB,mBAAmB,EAAE,MAAM,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAC9D;;;;;;;;OAQG;WACW,8BAA8B,CACxC,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,WAAW,EAAE,EACrB,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GACtC,UAAU;IAOb;;;;;;;OAOG;WACW,qCAAqC,CAC/C,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GACtC,UAAU;IAQb;;;;;;;OAOG;gBAEC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM;IAqBzC;;;;;;;;OAQG;IACU,gBAAgB,CACzB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,SAAS,EACzB,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC3C,OAAO,CAAC,QAAQ,CAAC;IAmCpB;;;;;;;;OAQG;IACU,oCAAoC,CAC7C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,SAAS,EACzB,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC3C,OAAO,CAAC,QAAQ,CAAC;IAOpB;;;;;;;OAOG;IACU,6BAA6B,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAC5C,OAAO,CAAC,qBAAqB,CAAC;IAwBjC;;;;;;OAMG;IACU,oBAAoB,CAC7B,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC7C,OAAO,CAAC,MAAM,CAAC;IA+Dd;;;;;;GAMD;IACU,wBAAwB,CACjC,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC7C,OAAO,CAAC,MAAM,CAAC;IA+DlB;;;;OAIG;IACU,2BAA2B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7D;;;;OAIG;IACU,gCAAgC,CACzC,SAAS,EAAE,MAAM,EACjB,uBAAuB,EAAE,OAAO,GACjC,OAAO,CAAC,wBAAwB,CAAC;IA8CpC;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAGtC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;CAGvC\"}\n\\ No newline at end of file" + }, + { + "sha": "893ed51519527120840a98c0536996958c392d1c", + "filename": "packages/asset-buyer/lib/src/asset_buyer.js", + "status": "added", + "additions": 457, + "deletions": 0, + "changes": 457, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,457 @@\n+\"use strict\";\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+var __read = (this && this.__read) || function (o, n) {\n+ var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n+ if (!m) return o;\n+ var i = m.call(o), r, ar = [], e;\n+ try {\n+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n+ }\n+ catch (error) { e = { error: error }; }\n+ finally {\n+ try {\n+ if (r && !r.done && (m = i[\"return\"])) m.call(i);\n+ }\n+ finally { if (e) throw e.error; }\n+ }\n+ return ar;\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var contract_wrappers_1 = require(\"@0x/contract-wrappers\");\n+var json_schemas_1 = require(\"@0x/json-schemas\");\n+var utils_1 = require(\"@0x/utils\");\n+var web3_wrapper_1 = require(\"@0x/web3-wrapper\");\n+var _ = require(\"lodash\");\n+var constants_1 = require(\"./constants\");\n+var basic_order_provider_1 = require(\"./order_providers/basic_order_provider\");\n+var standard_relayer_api_order_provider_1 = require(\"./order_providers/standard_relayer_api_order_provider\");\n+var types_1 = require(\"./types\");\n+var assert_1 = require(\"./utils/assert\");\n+var asset_data_utils_1 = require(\"./utils/asset_data_utils\");\n+var buy_quote_calculator_1 = require(\"./utils/buy_quote_calculator\");\n+var calculate_liquidity_1 = require(\"./utils/calculate_liquidity\");\n+var order_provider_response_processor_1 = require(\"./utils/order_provider_response_processor\");\n+var AssetBuyer = /** @class */ (function () {\n+ /**\n+ * Instantiates a new AssetBuyer instance\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orderProvider An object that conforms to OrderProvider, see type for definition.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ function AssetBuyer(supportedProvider, orderProvider, options) {\n+ if (options === void 0) { options = {}; }\n+ // cache of orders along with the time last updated keyed by assetData\n+ this._ordersEntryMap = {};\n+ var _a = _.merge({}, constants_1.constants.DEFAULT_ASSET_BUYER_OPTS, options), networkId = _a.networkId, orderRefreshIntervalMs = _a.orderRefreshIntervalMs, expiryBufferSeconds = _a.expiryBufferSeconds;\n+ var provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ assert_1.assert.isValidOrderProvider('orderProvider', orderProvider);\n+ assert_1.assert.isNumber('networkId', networkId);\n+ assert_1.assert.isNumber('orderRefreshIntervalMs', orderRefreshIntervalMs);\n+ assert_1.assert.isNumber('expiryBufferSeconds', expiryBufferSeconds);\n+ this.provider = provider;\n+ this.orderProvider = orderProvider;\n+ this.networkId = networkId;\n+ this.orderRefreshIntervalMs = orderRefreshIntervalMs;\n+ this.expiryBufferSeconds = expiryBufferSeconds;\n+ this._contractWrappers = new contract_wrappers_1.ContractWrappers(this.provider, {\n+ networkId: networkId,\n+ });\n+ }\n+ /**\n+ * Instantiates a new AssetBuyer instance given existing liquidity in the form of orders and feeOrders.\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param orders A non-empty array of objects that conform to SignedOrder. All orders must have the same makerAssetData and takerAssetData (WETH).\n+ * @param feeOrders A array of objects that conform to SignedOrder. All orders must have the same makerAssetData (ZRX) and takerAssetData (WETH). Defaults to an empty array.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ AssetBuyer.getAssetBuyerForProvidedOrders = function (supportedProvider, orders, options) {\n+ if (options === void 0) { options = {}; }\n+ assert_1.assert.doesConformToSchema('orders', orders, json_schemas_1.schemas.signedOrdersSchema);\n+ assert_1.assert.assert(orders.length !== 0, \"Expected orders to contain at least one order\");\n+ var orderProvider = new basic_order_provider_1.BasicOrderProvider(orders);\n+ var assetBuyer = new AssetBuyer(supportedProvider, orderProvider, options);\n+ return assetBuyer;\n+ };\n+ /**\n+ * Instantiates a new AssetBuyer instance given a [Standard Relayer API](https://github.com/0xProject/standard-relayer-api) endpoint\n+ * @param supportedProvider The Provider instance you would like to use for interacting with the Ethereum network.\n+ * @param sraApiUrl The standard relayer API base HTTP url you would like to source orders from.\n+ * @param options Initialization options for the AssetBuyer. See type definition for details.\n+ *\n+ * @return An instance of AssetBuyer\n+ */\n+ AssetBuyer.getAssetBuyerForStandardRelayerAPIUrl = function (supportedProvider, sraApiUrl, options) {\n+ if (options === void 0) { options = {}; }\n+ var provider = utils_1.providerUtils.standardizeOrThrow(supportedProvider);\n+ assert_1.assert.isWebUri('sraApiUrl', sraApiUrl);\n+ var networkId = options.networkId || constants_1.constants.DEFAULT_ASSET_BUYER_OPTS.networkId;\n+ var orderProvider = new standard_relayer_api_order_provider_1.StandardRelayerAPIOrderProvider(sraApiUrl, networkId);\n+ var assetBuyer = new AssetBuyer(provider, orderProvider, options);\n+ return assetBuyer;\n+ };\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired assetData.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ AssetBuyer.prototype.getBuyQuoteAsync = function (assetData, assetBuyAmount, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, feePercentage, shouldForceOrderRefresh, slippagePercentage, zrxTokenAssetData, isMakerAssetZrxToken, _b, ordersAndFillableAmounts, feeOrdersAndFillableAmounts, buyQuote;\n+ return __generator(this, function (_c) {\n+ switch (_c.label) {\n+ case 0:\n+ _a = _.merge({}, constants_1.constants.DEFAULT_BUY_QUOTE_REQUEST_OPTS, options), feePercentage = _a.feePercentage, shouldForceOrderRefresh = _a.shouldForceOrderRefresh, slippagePercentage = _a.slippagePercentage;\n+ assert_1.assert.isString('assetData', assetData);\n+ assert_1.assert.isBigNumber('assetBuyAmount', assetBuyAmount);\n+ assert_1.assert.isValidPercentage('feePercentage', feePercentage);\n+ assert_1.assert.isBoolean('shouldForceOrderRefresh', shouldForceOrderRefresh);\n+ assert_1.assert.isNumber('slippagePercentage', slippagePercentage);\n+ zrxTokenAssetData = this._getZrxTokenAssetDataOrThrow();\n+ isMakerAssetZrxToken = assetData === zrxTokenAssetData;\n+ return [4 /*yield*/, Promise.all([\n+ this.getOrdersAndFillableAmountsAsync(assetData, shouldForceOrderRefresh),\n+ isMakerAssetZrxToken\n+ ? Promise.resolve(constants_1.constants.EMPTY_ORDERS_AND_FILLABLE_AMOUNTS)\n+ : this.getOrdersAndFillableAmountsAsync(zrxTokenAssetData, shouldForceOrderRefresh),\n+ shouldForceOrderRefresh,\n+ ])];\n+ case 1:\n+ _b = __read.apply(void 0, [_c.sent(), 2]), ordersAndFillableAmounts = _b[0], feeOrdersAndFillableAmounts = _b[1];\n+ if (ordersAndFillableAmounts.orders.length === 0) {\n+ throw new Error(types_1.AssetBuyerError.AssetUnavailable + \": For assetData \" + assetData);\n+ }\n+ buyQuote = buy_quote_calculator_1.buyQuoteCalculator.calculate(ordersAndFillableAmounts, feeOrdersAndFillableAmounts, assetBuyAmount, feePercentage, slippagePercentage, isMakerAssetZrxToken);\n+ return [2 /*return*/, buyQuote];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Get a `BuyQuote` containing all information relevant to fulfilling a buy given a desired ERC20 token address.\n+ * You can then pass the `BuyQuote` to `executeBuyQuoteAsync` to execute the buy.\n+ * @param tokenAddress The ERC20 token address.\n+ * @param assetBuyAmount The amount of asset to buy.\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to BuyQuote that satisfies the request. See type definition for more information.\n+ */\n+ AssetBuyer.prototype.getBuyQuoteForERC20TokenAddressAsync = function (tokenAddress, assetBuyAmount, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var assetData, buyQuote;\n+ return __generator(this, function (_a) {\n+ assert_1.assert.isETHAddressHex('tokenAddress', tokenAddress);\n+ assert_1.assert.isBigNumber('assetBuyAmount', assetBuyAmount);\n+ assetData = asset_data_utils_1.assetDataUtils.encodeERC20AssetData(tokenAddress);\n+ buyQuote = this.getBuyQuoteAsync(assetData, assetBuyAmount, options);\n+ return [2 /*return*/, buyQuote];\n+ });\n+ });\n+ };\n+ /**\n+ * Returns information about available liquidity for an asset\n+ * Does not factor in slippage or fees\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param options Options for the request. See type definition for more information.\n+ *\n+ * @return An object that conforms to LiquidityForAssetData that satisfies the request. See type definition for more information.\n+ */\n+ AssetBuyer.prototype.getLiquidityForAssetDataAsync = function (assetData, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var shouldForceOrderRefresh, assetPairs, etherTokenAssetData, ordersAndFillableAmounts;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ shouldForceOrderRefresh = options.shouldForceOrderRefresh !== undefined ? options.shouldForceOrderRefresh : false;\n+ assert_1.assert.isString('assetData', assetData);\n+ asset_data_utils_1.assetDataUtils.decodeAssetDataOrThrow(assetData);\n+ assert_1.assert.isBoolean('options.shouldForceOrderRefresh', shouldForceOrderRefresh);\n+ return [4 /*yield*/, this.orderProvider.getAvailableMakerAssetDatasAsync(assetData)];\n+ case 1:\n+ assetPairs = _a.sent();\n+ etherTokenAssetData = this._getEtherTokenAssetDataOrThrow();\n+ if (!assetPairs.includes(etherTokenAssetData)) {\n+ return [2 /*return*/, {\n+ tokensAvailableInBaseUnits: new utils_1.BigNumber(0),\n+ ethValueAvailableInWei: new utils_1.BigNumber(0),\n+ }];\n+ }\n+ return [4 /*yield*/, this.getOrdersAndFillableAmountsAsync(assetData, shouldForceOrderRefresh)];\n+ case 2:\n+ ordersAndFillableAmounts = _a.sent();\n+ return [2 /*return*/, calculate_liquidity_1.calculateLiquidity(ordersAndFillableAmounts)];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ AssetBuyer.prototype.executeBuyQuoteAsync = function (buyQuote, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, ethAmount, takerAddress, feeRecipient, gasLimit, gasPrice, orders, feeOrders, feePercentage, assetBuyAmount, worstCaseQuoteInfo, finalTakerAddress, web3Wrapper, availableAddresses, firstAvailableAddress, txHash, err_1;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ _a = _.merge({}, constants_1.constants.DEFAULT_BUY_QUOTE_EXECUTION_OPTS, options), ethAmount = _a.ethAmount, takerAddress = _a.takerAddress, feeRecipient = _a.feeRecipient, gasLimit = _a.gasLimit, gasPrice = _a.gasPrice;\n+ assert_1.assert.isValidBuyQuote('buyQuote', buyQuote);\n+ if (!_.isUndefined(ethAmount)) {\n+ assert_1.assert.isBigNumber('ethAmount', ethAmount);\n+ }\n+ if (!_.isUndefined(takerAddress)) {\n+ assert_1.assert.isETHAddressHex('takerAddress', takerAddress);\n+ }\n+ assert_1.assert.isETHAddressHex('feeRecipient', feeRecipient);\n+ if (!_.isUndefined(gasLimit)) {\n+ assert_1.assert.isNumber('gasLimit', gasLimit);\n+ }\n+ if (!_.isUndefined(gasPrice)) {\n+ assert_1.assert.isBigNumber('gasPrice', gasPrice);\n+ }\n+ orders = buyQuote.orders, feeOrders = buyQuote.feeOrders, feePercentage = buyQuote.feePercentage, assetBuyAmount = buyQuote.assetBuyAmount, worstCaseQuoteInfo = buyQuote.worstCaseQuoteInfo;\n+ if (!!_.isUndefined(takerAddress)) return [3 /*break*/, 1];\n+ finalTakerAddress = takerAddress;\n+ return [3 /*break*/, 3];\n+ case 1:\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(this.provider);\n+ return [4 /*yield*/, web3Wrapper.getAvailableAddressesAsync()];\n+ case 2:\n+ availableAddresses = _b.sent();\n+ firstAvailableAddress = _.head(availableAddresses);\n+ if (!_.isUndefined(firstAvailableAddress)) {\n+ finalTakerAddress = firstAvailableAddress;\n+ }\n+ else {\n+ throw new Error(types_1.AssetBuyerError.NoAddressAvailable);\n+ }\n+ _b.label = 3;\n+ case 3:\n+ _b.trys.push([3, 5, , 6]);\n+ return [4 /*yield*/, this._contractWrappers.forwarder.marketBuyOrdersWithEthAsync(orders, assetBuyAmount, finalTakerAddress, ethAmount || worstCaseQuoteInfo.totalEthAmount, feeOrders, feePercentage, feeRecipient, {\n+ gasLimit: gasLimit,\n+ gasPrice: gasPrice,\n+ shouldValidate: true,\n+ })];\n+ case 4:\n+ txHash = _b.sent();\n+ return [2 /*return*/, txHash];\n+ case 5:\n+ err_1 = _b.sent();\n+ if (_.includes(err_1.message, contract_wrappers_1.ContractWrappersError.SignatureRequestDenied)) {\n+ throw new Error(types_1.AssetBuyerError.SignatureRequestDenied);\n+ }\n+ else if (_.includes(err_1.message, contract_wrappers_1.ForwarderWrapperError.CompleteFillFailed)) {\n+ throw new Error(types_1.AssetBuyerError.TransactionValueTooLow);\n+ }\n+ else {\n+ throw err_1;\n+ }\n+ return [3 /*break*/, 6];\n+ case 6: return [2 /*return*/];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Given a BuyQuote and desired rate, attempt to execute the buy.\n+ * @param buyQuote An object that conforms to BuyQuote. See type definition for more information.\n+ * @param options Options for the execution of the BuyQuote. See type definition for more information.\n+ *\n+ * @return A promise of the txHash.\n+ */\n+ AssetBuyer.prototype.mockExecuteBuyQuoteAsync = function (buyQuote, options) {\n+ if (options === void 0) { options = {}; }\n+ return __awaiter(this, void 0, void 0, function () {\n+ var _a, ethAmount, takerAddress, feeRecipient, gasLimit, gasPrice, orders, feeOrders, feePercentage, assetBuyAmount, worstCaseQuoteInfo, finalTakerAddress, web3Wrapper, availableAddresses, firstAvailableAddress, txHash, err_2;\n+ return __generator(this, function (_b) {\n+ switch (_b.label) {\n+ case 0:\n+ _a = _.merge({}, constants_1.constants.DEFAULT_BUY_QUOTE_EXECUTION_OPTS, options), ethAmount = _a.ethAmount, takerAddress = _a.takerAddress, feeRecipient = _a.feeRecipient, gasLimit = _a.gasLimit, gasPrice = _a.gasPrice;\n+ assert_1.assert.isValidBuyQuote('buyQuote', buyQuote);\n+ if (!_.isUndefined(ethAmount)) {\n+ assert_1.assert.isBigNumber('ethAmount', ethAmount);\n+ }\n+ if (!_.isUndefined(takerAddress)) {\n+ assert_1.assert.isETHAddressHex('takerAddress', takerAddress);\n+ }\n+ assert_1.assert.isETHAddressHex('feeRecipient', feeRecipient);\n+ if (!_.isUndefined(gasLimit)) {\n+ assert_1.assert.isNumber('gasLimit', gasLimit);\n+ }\n+ if (!_.isUndefined(gasPrice)) {\n+ assert_1.assert.isBigNumber('gasPrice', gasPrice);\n+ }\n+ orders = buyQuote.orders, feeOrders = buyQuote.feeOrders, feePercentage = buyQuote.feePercentage, assetBuyAmount = buyQuote.assetBuyAmount, worstCaseQuoteInfo = buyQuote.worstCaseQuoteInfo;\n+ if (!!_.isUndefined(takerAddress)) return [3 /*break*/, 1];\n+ finalTakerAddress = takerAddress;\n+ return [3 /*break*/, 3];\n+ case 1:\n+ web3Wrapper = new web3_wrapper_1.Web3Wrapper(this.provider);\n+ return [4 /*yield*/, web3Wrapper.getAvailableAddressesAsync()];\n+ case 2:\n+ availableAddresses = _b.sent();\n+ firstAvailableAddress = _.head(availableAddresses);\n+ if (!_.isUndefined(firstAvailableAddress)) {\n+ finalTakerAddress = firstAvailableAddress;\n+ }\n+ else {\n+ throw new Error(types_1.AssetBuyerError.NoAddressAvailable);\n+ }\n+ _b.label = 3;\n+ case 3:\n+ _b.trys.push([3, 5, , 6]);\n+ return [4 /*yield*/, this._contractWrappers.forwarder.marketBuyOrdersWithEthAsync(orders, assetBuyAmount, finalTakerAddress, ethAmount || worstCaseQuoteInfo.totalEthAmount, feeOrders, feePercentage, feeRecipient, {\n+ gasLimit: gasLimit,\n+ gasPrice: gasPrice,\n+ shouldValidate: true,\n+ })];\n+ case 4:\n+ txHash = _b.sent();\n+ return [2 /*return*/, txHash];\n+ case 5:\n+ err_2 = _b.sent();\n+ if (_.includes(err_2.message, contract_wrappers_1.ContractWrappersError.SignatureRequestDenied)) {\n+ throw new Error(types_1.AssetBuyerError.SignatureRequestDenied);\n+ }\n+ else if (_.includes(err_2.message, contract_wrappers_1.ForwarderWrapperError.CompleteFillFailed)) {\n+ throw new Error(types_1.AssetBuyerError.TransactionValueTooLow);\n+ }\n+ else {\n+ throw err_2;\n+ }\n+ return [3 /*break*/, 6];\n+ case 6: return [2 /*return*/];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Get the asset data of all assets that are purchaseable with ether token (wETH) in the order provider passed in at init.\n+ *\n+ * @return An array of asset data strings that can be purchased using wETH.\n+ */\n+ AssetBuyer.prototype.getAvailableAssetDatasAsync = function () {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var etherTokenAssetData;\n+ return __generator(this, function (_a) {\n+ etherTokenAssetData = this._getEtherTokenAssetDataOrThrow();\n+ return [2 /*return*/, this.orderProvider.getAvailableMakerAssetDatasAsync(etherTokenAssetData)];\n+ });\n+ });\n+ };\n+ /**\n+ * Grab orders from the map, if there is a miss or it is time to refresh, fetch and process the orders\n+ * @param assetData The assetData of the desired asset to buy (for more info: https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).\n+ * @param shouldForceOrderRefresh If set to true, new orders and state will be fetched instead of waiting for the next orderRefreshIntervalMs.\n+ */\n+ AssetBuyer.prototype.getOrdersAndFillableAmountsAsync = function (assetData, shouldForceOrderRefresh) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var ordersEntryIfExists, shouldRefresh, result, etherTokenAssetData, zrxTokenAssetData, orderProviderRequest, request, response, isMakerAssetZrxToken, ordersAndFillableAmounts, lastRefreshTime, updatedOrdersEntry;\n+ return __generator(this, function (_a) {\n+ switch (_a.label) {\n+ case 0:\n+ ordersEntryIfExists = this._ordersEntryMap[assetData];\n+ shouldRefresh = _.isUndefined(ordersEntryIfExists) ||\n+ shouldForceOrderRefresh ||\n+ // tslint:disable:restrict-plus-operands\n+ ordersEntryIfExists.lastRefreshTime + this.orderRefreshIntervalMs < Date.now();\n+ if (!shouldRefresh) {\n+ result = ordersEntryIfExists.ordersAndFillableAmounts;\n+ return [2 /*return*/, result];\n+ }\n+ etherTokenAssetData = this._getEtherTokenAssetDataOrThrow();\n+ zrxTokenAssetData = this._getZrxTokenAssetDataOrThrow();\n+ orderProviderRequest = {\n+ makerAssetData: assetData,\n+ takerAssetData: etherTokenAssetData,\n+ networkId: this.networkId,\n+ };\n+ request = orderProviderRequest;\n+ return [4 /*yield*/, this.orderProvider.getOrdersAsync(request)];\n+ case 1:\n+ response = _a.sent();\n+ // since the order provider is an injected dependency, validate that it respects the API\n+ // ie. it should only return maker/taker assetDatas that are specified\n+ order_provider_response_processor_1.orderProviderResponseProcessor.throwIfInvalidResponse(response, request);\n+ isMakerAssetZrxToken = assetData === zrxTokenAssetData;\n+ return [4 /*yield*/, order_provider_response_processor_1.orderProviderResponseProcessor.processAsync(response, isMakerAssetZrxToken, this.expiryBufferSeconds, this._contractWrappers.orderValidator)];\n+ case 2:\n+ ordersAndFillableAmounts = _a.sent();\n+ lastRefreshTime = Date.now();\n+ updatedOrdersEntry = {\n+ ordersAndFillableAmounts: ordersAndFillableAmounts,\n+ lastRefreshTime: lastRefreshTime,\n+ };\n+ this._ordersEntryMap[assetData] = updatedOrdersEntry;\n+ return [2 /*return*/, ordersAndFillableAmounts];\n+ }\n+ });\n+ });\n+ };\n+ /**\n+ * Get the assetData that represents the WETH token.\n+ * Will throw if WETH does not exist for the current network.\n+ */\n+ AssetBuyer.prototype._getEtherTokenAssetDataOrThrow = function () {\n+ return asset_data_utils_1.assetDataUtils.getEtherTokenAssetData(this._contractWrappers);\n+ };\n+ /**\n+ * Get the assetData that represents the ZRX token.\n+ * Will throw if ZRX does not exist for the current network.\n+ */\n+ AssetBuyer.prototype._getZrxTokenAssetDataOrThrow = function () {\n+ return this._contractWrappers.exchange.getZRXAssetData();\n+ };\n+ return AssetBuyer;\n+}());\n+exports.AssetBuyer = AssetBuyer;\n+//# sourceMappingURL=asset_buyer.js.map\n\\ No newline at end of file" + }, + { + "sha": "742913b367caaccaee92fc7d80ad65da18e73ac1", + "filename": "packages/asset-buyer/lib/src/asset_buyer.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/asset_buyer.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/asset_buyer.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"asset_buyer.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/asset_buyer.ts\"],\"names\":[],\"mappings\":\"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\"}\n\\ No newline at end of file" + }, + { + "sha": "e4588ea81af49ceeb931f70b899ba4c94c6d20c8", + "filename": "packages/asset-buyer/lib/src/constants.d.ts", + "status": "added", + "additions": 13, + "deletions": 0, + "changes": 13, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,13 @@\n+import { BigNumber } from '@0x/utils';\n+import { AssetBuyerOpts, BuyQuoteExecutionOpts, BuyQuoteRequestOpts, OrdersAndFillableAmounts } from './types';\n+export declare const constants: {\n+ ZERO_AMOUNT: BigNumber;\n+ NULL_ADDRESS: string;\n+ MAINNET_NETWORK_ID: number;\n+ ETHER_TOKEN_DECIMALS: number;\n+ DEFAULT_ASSET_BUYER_OPTS: AssetBuyerOpts;\n+ DEFAULT_BUY_QUOTE_EXECUTION_OPTS: BuyQuoteExecutionOpts;\n+ DEFAULT_BUY_QUOTE_REQUEST_OPTS: BuyQuoteRequestOpts;\n+ EMPTY_ORDERS_AND_FILLABLE_AMOUNTS: OrdersAndFillableAmounts;\n+};\n+//# sourceMappingURL=constants.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "6a4029108344addb830bed04bb5d18e1fa61b65a", + "filename": "packages/asset-buyer/lib/src/constants.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"constants.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/constants.ts\"],\"names\":[],\"mappings\":\"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AA2B/G,eAAO,MAAM,SAAS;;;;;;;;;CASrB,CAAC\"}\n\\ No newline at end of file" + }, + { + "sha": "dce1dfec8ecd239e2d819a0a63d811bc4069e917", + "filename": "packages/asset-buyer/lib/src/constants.js", + "status": "added", + "additions": 34, + "deletions": 0, + "changes": 34, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,34 @@\n+\"use strict\";\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var utils_1 = require(\"@0x/utils\");\n+var NULL_ADDRESS = '0x0000000000000000000000000000000000000000';\n+var MAINNET_NETWORK_ID = 1;\n+var DEFAULT_ASSET_BUYER_OPTS = {\n+ networkId: MAINNET_NETWORK_ID,\n+ orderRefreshIntervalMs: 10000,\n+ expiryBufferSeconds: 120,\n+};\n+var DEFAULT_BUY_QUOTE_REQUEST_OPTS = {\n+ feePercentage: 0,\n+ shouldForceOrderRefresh: false,\n+ slippagePercentage: 0.2,\n+};\n+// Other default values are dynamically determined\n+var DEFAULT_BUY_QUOTE_EXECUTION_OPTS = {\n+ feeRecipient: NULL_ADDRESS,\n+};\n+var EMPTY_ORDERS_AND_FILLABLE_AMOUNTS = {\n+ orders: [],\n+ remainingFillableMakerAssetAmounts: [],\n+};\n+exports.constants = {\n+ ZERO_AMOUNT: new utils_1.BigNumber(0),\n+ NULL_ADDRESS: NULL_ADDRESS,\n+ MAINNET_NETWORK_ID: MAINNET_NETWORK_ID,\n+ ETHER_TOKEN_DECIMALS: 18,\n+ DEFAULT_ASSET_BUYER_OPTS: DEFAULT_ASSET_BUYER_OPTS,\n+ DEFAULT_BUY_QUOTE_EXECUTION_OPTS: DEFAULT_BUY_QUOTE_EXECUTION_OPTS,\n+ DEFAULT_BUY_QUOTE_REQUEST_OPTS: DEFAULT_BUY_QUOTE_REQUEST_OPTS,\n+ EMPTY_ORDERS_AND_FILLABLE_AMOUNTS: EMPTY_ORDERS_AND_FILLABLE_AMOUNTS,\n+};\n+//# sourceMappingURL=constants.js.map\n\\ No newline at end of file" + }, + { + "sha": "ffb95571f7f7b6fe7e86b3bccb5fa0c52ed50d4a", + "filename": "packages/asset-buyer/lib/src/constants.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/constants.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/constants.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"constants.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/constants.ts\"],\"names\":[],\"mappings\":\";;AACA,mCAAsC;AAItC,IAAM,YAAY,GAAG,4CAA4C,CAAC;AAClE,IAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,IAAM,wBAAwB,GAAmB;IAC7C,SAAS,EAAE,kBAAkB;IAC7B,sBAAsB,EAAE,KAAK;IAC7B,mBAAmB,EAAE,GAAG;CAC3B,CAAC;AAEF,IAAM,8BAA8B,GAAwB;IACxD,aAAa,EAAE,CAAC;IAChB,uBAAuB,EAAE,KAAK;IAC9B,kBAAkB,EAAE,GAAG;CAC1B,CAAC;AAEF,kDAAkD;AAClD,IAAM,gCAAgC,GAA0B;IAC5D,YAAY,EAAE,YAAY;CAC7B,CAAC;AAEF,IAAM,iCAAiC,GAA6B;IAChE,MAAM,EAAE,EAAmB;IAC3B,kCAAkC,EAAE,EAAiB;CACxD,CAAC;AAEW,QAAA,SAAS,GAAG;IACrB,WAAW,EAAE,IAAI,iBAAS,CAAC,CAAC,CAAC;IAC7B,YAAY,cAAA;IACZ,kBAAkB,oBAAA;IAClB,oBAAoB,EAAE,EAAE;IACxB,wBAAwB,0BAAA;IACxB,gCAAgC,kCAAA;IAChC,8BAA8B,gCAAA;IAC9B,iCAAiC,mCAAA;CACpC,CAAC\"}\n\\ No newline at end of file" + }, + { + "sha": "702e2feedefa4fc878244f025e622785db280f53", + "filename": "packages/asset-buyer/lib/src/errors.d.ts", + "status": "added", + "additions": 15, + "deletions": 0, + "changes": 15, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,15 @@\n+import { BigNumber } from '@0x/utils';\n+/**\n+ * Error class representing insufficient asset liquidity\n+ */\n+export declare class InsufficientAssetLiquidityError extends Error {\n+ /**\n+ * The amount availabe to fill (in base units) factoring in slippage.\n+ */\n+ amountAvailableToFill: BigNumber;\n+ /**\n+ * @param amountAvailableToFill The amount availabe to fill (in base units) factoring in slippage\n+ */\n+ constructor(amountAvailableToFill: BigNumber);\n+}\n+//# sourceMappingURL=errors.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "989a45d69dcf808034909d7efbaccfd34ac6147a", + "filename": "packages/asset-buyer/lib/src/errors.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"errors.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/errors.ts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,KAAK;IACtD;;OAEG;IACI,qBAAqB,EAAE,SAAS,CAAC;IACxC;;OAEG;gBACS,qBAAqB,EAAE,SAAS;CAM/C\"}\n\\ No newline at end of file" + }, + { + "sha": "d8770eed54098cdf167289ac8ec52686b84745e4", + "filename": "packages/asset-buyer/lib/src/errors.js", + "status": "added", + "additions": 35, + "deletions": 0, + "changes": 35, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,35 @@\n+\"use strict\";\n+var __extends = (this && this.__extends) || (function () {\n+ var extendStatics = function (d, b) {\n+ extendStatics = Object.setPrototypeOf ||\n+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n+ return extendStatics(d, b);\n+ }\n+ return function (d, b) {\n+ extendStatics(d, b);\n+ function __() { this.constructor = d; }\n+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n+ };\n+})();\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var types_1 = require(\"./types\");\n+/**\n+ * Error class representing insufficient asset liquidity\n+ */\n+var InsufficientAssetLiquidityError = /** @class */ (function (_super) {\n+ __extends(InsufficientAssetLiquidityError, _super);\n+ /**\n+ * @param amountAvailableToFill The amount availabe to fill (in base units) factoring in slippage\n+ */\n+ function InsufficientAssetLiquidityError(amountAvailableToFill) {\n+ var _this = _super.call(this, types_1.AssetBuyerError.InsufficientAssetLiquidity) || this;\n+ _this.amountAvailableToFill = amountAvailableToFill;\n+ // Setting prototype so instanceof works. See https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n+ Object.setPrototypeOf(_this, InsufficientAssetLiquidityError.prototype);\n+ return _this;\n+ }\n+ return InsufficientAssetLiquidityError;\n+}(Error));\n+exports.InsufficientAssetLiquidityError = InsufficientAssetLiquidityError;\n+//# sourceMappingURL=errors.js.map\n\\ No newline at end of file" + }, + { + "sha": "3f7f95062b678a1fe860bb6f029f32693ca22a9c", + "filename": "packages/asset-buyer/lib/src/errors.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/errors.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/errors.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"errors.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/errors.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;AAEA,iCAA0C;AAE1C;;GAEG;AACH;IAAqD,mDAAK;IAKtD;;OAEG;IACH,yCAAY,qBAAgC;QAA5C,YACI,kBAAM,uBAAe,CAAC,0BAA0B,CAAC,SAIpD;QAHG,KAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,4KAA4K;QAC5K,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,+BAA+B,CAAC,SAAS,CAAC,CAAC;;IAC3E,CAAC;IACL,sCAAC;AAAD,CAAC,AAdD,CAAqD,KAAK,GAczD;AAdY,0EAA+B\"}\n\\ No newline at end of file" + }, + { + "sha": "fd537b9d74670f933de0c22f588573630f3d7842", + "filename": "packages/asset-buyer/lib/src/index.d.ts", + "status": "added", + "additions": 9, + "deletions": 0, + "changes": 9, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,9 @@\n+export { JSONRPCRequestPayload, JSONRPCResponsePayload, JSONRPCResponseError, JSONRPCErrorCallback, SupportedProvider, Web3JsProvider, GanacheProvider, EIP1193Provider, ZeroExProvider, EIP1193Event, Web3JsV1Provider, Web3JsV2Provider, Web3JsV3Provider, } from 'ethereum-types';\n+export { SignedOrder } from '@0x/types';\n+export { BigNumber } from '@0x/utils';\n+export { AssetBuyer } from './asset_buyer';\n+export { InsufficientAssetLiquidityError } from './errors';\n+export { BasicOrderProvider } from './order_providers/basic_order_provider';\n+export { StandardRelayerAPIOrderProvider } from './order_providers/standard_relayer_api_order_provider';\n+export { AssetBuyerError, AssetBuyerOpts, BuyQuote, BuyQuoteExecutionOpts, BuyQuoteInfo, BuyQuoteRequestOpts, LiquidityForAssetData, LiquidityRequestOpts, OrdersAndFillableAmounts, OrderProvider, OrderProviderRequest, OrderProviderResponse, SignedOrderWithRemainingFillableMakerAssetAmount, } from './types';\n+//# sourceMappingURL=index.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "eda1c7bf4e12509209f4091ae21cf769a74cb26f", + "filename": "packages/asset-buyer/lib/src/index.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EACH,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,uDAAuD,CAAC;AACxG,OAAO,EACH,eAAe,EACf,cAAc,EACd,QAAQ,EACR,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,gDAAgD,GACnD,MAAM,SAAS,CAAC\"}\n\\ No newline at end of file" + }, + { + "sha": "bb309f351bac037f15c8e124c492c102d4b8597e", + "filename": "packages/asset-buyer/lib/src/index.js", + "status": "added", + "additions": 15, + "deletions": 0, + "changes": 15, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,15 @@\n+\"use strict\";\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var utils_1 = require(\"@0x/utils\");\n+exports.BigNumber = utils_1.BigNumber;\n+var asset_buyer_1 = require(\"./asset_buyer\");\n+exports.AssetBuyer = asset_buyer_1.AssetBuyer;\n+var errors_1 = require(\"./errors\");\n+exports.InsufficientAssetLiquidityError = errors_1.InsufficientAssetLiquidityError;\n+var basic_order_provider_1 = require(\"./order_providers/basic_order_provider\");\n+exports.BasicOrderProvider = basic_order_provider_1.BasicOrderProvider;\n+var standard_relayer_api_order_provider_1 = require(\"./order_providers/standard_relayer_api_order_provider\");\n+exports.StandardRelayerAPIOrderProvider = standard_relayer_api_order_provider_1.StandardRelayerAPIOrderProvider;\n+var types_1 = require(\"./types\");\n+exports.AssetBuyerError = types_1.AssetBuyerError;\n+//# sourceMappingURL=index.js.map\n\\ No newline at end of file" + }, + { + "sha": "f5f125c88f2b3741c3b3bed1f4c2e575cf1bbcac", + "filename": "packages/asset-buyer/lib/src/index.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/index.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/index.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../src/index.ts\"],\"names\":[],\"mappings\":\";;AAgBA,mCAAsC;AAA7B,4BAAA,SAAS,CAAA;AAElB,6CAA2C;AAAlC,mCAAA,UAAU,CAAA;AACnB,mCAA2D;AAAlD,mDAAA,+BAA+B,CAAA;AACxC,+EAA4E;AAAnE,oDAAA,kBAAkB,CAAA;AAC3B,6GAAwG;AAA/F,gFAAA,+BAA+B,CAAA;AACxC,iCAciB;AAbb,kCAAA,eAAe,CAAA\"}\n\\ No newline at end of file" + }, + { + "sha": "b3abcb718bf180c0daa2902b9d849750e76caf98", + "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts", + "status": "added", + "additions": 24, + "deletions": 0, + "changes": 24, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,24 @@\n+import { SignedOrder } from '@0x/types';\n+import { OrderProvider, OrderProviderRequest, OrderProviderResponse } from '../types';\n+export declare class BasicOrderProvider implements OrderProvider {\n+ readonly orders: SignedOrder[];\n+ /**\n+ * Instantiates a new BasicOrderProvider instance\n+ * @param orders An array of objects that conform to SignedOrder to fetch from.\n+ * @return An instance of BasicOrderProvider\n+ */\n+ constructor(orders: SignedOrder[]);\n+ /**\n+ * Given an object that conforms to OrderFetcherRequest, return the corresponding OrderProviderResponse that satisfies the request.\n+ * @param orderProviderRequest An instance of OrderFetcherRequest. See type for more information.\n+ * @return An instance of OrderProviderResponse. See type for more information.\n+ */\n+ getOrdersAsync(orderProviderRequest: OrderProviderRequest): Promise;\n+ /**\n+ * Given a taker asset data string, return all availabled paired maker asset data strings.\n+ * @param takerAssetData A string representing the taker asset data.\n+ * @return An array of asset data strings that can be purchased using takerAssetData.\n+ */\n+ getAvailableMakerAssetDatasAsync(takerAssetData: string): Promise;\n+}\n+//# sourceMappingURL=basic_order_provider.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "f182aedec9bd10a31e4adfd630c4af380744ffa4", + "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"basic_order_provider.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/order_providers/basic_order_provider.ts\"],\"names\":[],\"mappings\":\"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtF,qBAAa,kBAAmB,YAAW,aAAa;IACpD,SAAgB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtC;;;;OAIG;gBACS,MAAM,EAAE,WAAW,EAAE;IAIjC;;;;OAIG;IACU,cAAc,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQvG;;;;OAIG;IACU,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAI3F\"}\n\\ No newline at end of file" + }, + { + "sha": "47d81d1cbd0dbb037e555e709df5004993b6fec2", + "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.js", + "status": "added", + "additions": 86, + "deletions": 0, + "changes": 86, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,86 @@\n+\"use strict\";\n+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n+ return new (P || (P = Promise))(function (resolve, reject) {\n+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n+ function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n+ step((generator = generator.apply(thisArg, _arguments || [])).next());\n+ });\n+};\n+var __generator = (this && this.__generator) || function (thisArg, body) {\n+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n+ return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n+ function verb(n) { return function (v) { return step([n, v]); }; }\n+ function step(op) {\n+ if (f) throw new TypeError(\"Generator is already executing.\");\n+ while (_) try {\n+ if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n+ if (y = 0, t) op = [op[0] & 2, t.value];\n+ switch (op[0]) {\n+ case 0: case 1: t = op; break;\n+ case 4: _.label++; return { value: op[1], done: false };\n+ case 5: _.label++; y = op[1]; op = [0]; continue;\n+ case 7: op = _.ops.pop(); _.trys.pop(); continue;\n+ default:\n+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n+ if (t[2]) _.ops.pop();\n+ _.trys.pop(); continue;\n+ }\n+ op = body.call(thisArg, _);\n+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n+ }\n+};\n+Object.defineProperty(exports, \"__esModule\", { value: true });\n+var json_schemas_1 = require(\"@0x/json-schemas\");\n+var _ = require(\"lodash\");\n+var assert_1 = require(\"../utils/assert\");\n+var BasicOrderProvider = /** @class */ (function () {\n+ /**\n+ * Instantiates a new BasicOrderProvider instance\n+ * @param orders An array of objects that conform to SignedOrder to fetch from.\n+ * @return An instance of BasicOrderProvider\n+ */\n+ function BasicOrderProvider(orders) {\n+ assert_1.assert.doesConformToSchema('orders', orders, json_schemas_1.schemas.signedOrdersSchema);\n+ this.orders = orders;\n+ }\n+ /**\n+ * Given an object that conforms to OrderFetcherRequest, return the corresponding OrderProviderResponse that satisfies the request.\n+ * @param orderProviderRequest An instance of OrderFetcherRequest. See type for more information.\n+ * @return An instance of OrderProviderResponse. See type for more information.\n+ */\n+ BasicOrderProvider.prototype.getOrdersAsync = function (orderProviderRequest) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var makerAssetData, takerAssetData, orders;\n+ return __generator(this, function (_a) {\n+ assert_1.assert.isValidOrderProviderRequest('orderProviderRequest', orderProviderRequest);\n+ makerAssetData = orderProviderRequest.makerAssetData, takerAssetData = orderProviderRequest.takerAssetData;\n+ orders = _.filter(this.orders, function (order) {\n+ return order.makerAssetData === makerAssetData && order.takerAssetData === takerAssetData;\n+ });\n+ return [2 /*return*/, { orders: orders }];\n+ });\n+ });\n+ };\n+ /**\n+ * Given a taker asset data string, return all availabled paired maker asset data strings.\n+ * @param takerAssetData A string representing the taker asset data.\n+ * @return An array of asset data strings that can be purchased using takerAssetData.\n+ */\n+ BasicOrderProvider.prototype.getAvailableMakerAssetDatasAsync = function (takerAssetData) {\n+ return __awaiter(this, void 0, void 0, function () {\n+ var ordersWithTakerAssetData;\n+ return __generator(this, function (_a) {\n+ ordersWithTakerAssetData = _.filter(this.orders, { takerAssetData: takerAssetData });\n+ return [2 /*return*/, _.map(ordersWithTakerAssetData, function (order) { return order.makerAssetData; })];\n+ });\n+ });\n+ };\n+ return BasicOrderProvider;\n+}());\n+exports.BasicOrderProvider = BasicOrderProvider;\n+//# sourceMappingURL=basic_order_provider.js.map\n\\ No newline at end of file" + }, + { + "sha": "aadfcffebd2db4d56d386bffb88022d2d34f97d1", + "filename": "packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/basic_order_provider.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"basic_order_provider.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/order_providers/basic_order_provider.ts\"],\"names\":[],\"mappings\":\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA2C;AAE3C,0BAA4B;AAG5B,0CAAyC;AAEzC;IAEI;;;;OAIG;IACH,4BAAY,MAAqB;QAC7B,eAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,sBAAO,CAAC,kBAAkB,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IACD;;;;OAIG;IACU,2CAAc,GAA3B,UAA4B,oBAA0C;;;;gBAClE,eAAM,CAAC,2BAA2B,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;gBACzE,cAAc,GAAqB,oBAAoB,eAAzC,EAAE,cAAc,GAAK,oBAAoB,eAAzB,CAA0B;gBAC1D,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAA,KAAK;oBACtC,OAAO,KAAK,CAAC,cAAc,KAAK,cAAc,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,CAAC;gBAC9F,CAAC,CAAC,CAAC;gBACH,sBAAO,EAAE,MAAM,QAAA,EAAE,EAAC;;;KACrB;IACD;;;;OAIG;IACU,6DAAgC,GAA7C,UAA8C,cAAsB;;;;gBAC1D,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;gBAC3E,sBAAO,CAAC,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,cAAc,EAApB,CAAoB,CAAC,EAAC;;;KACzE;IACL,yBAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,gDAAkB\"}\n\\ No newline at end of file" + }, + { + "sha": "17f123933a2e2cf34bb0df0cfd273b5f8351345a", + "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts", + "status": "added", + "additions": 31, + "deletions": 0, + "changes": 31, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1,31 @@\n+import { OrderProvider, OrderProviderRequest, OrderProviderResponse } from '../types';\n+export declare class StandardRelayerAPIOrderProvider implements OrderProvider {\n+ readonly apiUrl: string;\n+ readonly networkId: number;\n+ private readonly _sraClient;\n+ /**\n+ * Given an array of APIOrder objects from a standard relayer api, return an array\n+ * of SignedOrderWithRemainingFillableMakerAssetAmounts\n+ */\n+ private static _getSignedOrderWithRemainingFillableMakerAssetAmountFromApi;\n+ /**\n+ * Instantiates a new StandardRelayerAPIOrderProvider instance\n+ * @param apiUrl The standard relayer API base HTTP url you would like to source orders from.\n+ * @param networkId The ethereum network id.\n+ * @return An instance of StandardRelayerAPIOrderProvider\n+ */\n+ constructor(apiUrl: string, networkId: number);\n+ /**\n+ * Given an object that conforms to OrderProviderRequest, return the corresponding OrderProviderResponse that satisfies the request.\n+ * @param orderProviderRequest An instance of OrderProviderRequest. See type for more information.\n+ * @return An instance of OrderProviderResponse. See type for more information.\n+ */\n+ getOrdersAsync(orderProviderRequest: OrderProviderRequest): Promise;\n+ /**\n+ * Given a taker asset data string, return all availabled paired maker asset data strings.\n+ * @param takerAssetData A string representing the taker asset data.\n+ * @return An array of asset data strings that can be purchased using takerAssetData.\n+ */\n+ getAvailableMakerAssetDatasAsync(takerAssetData: string): Promise;\n+}\n+//# sourceMappingURL=standard_relayer_api_order_provider.d.ts.map\n\\ No newline at end of file" + }, + { + "sha": "9089c009254da953d697fd1dc57182c9b5df5438", + "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map", + "status": "added", + "additions": 1, + "deletions": 0, + "changes": 1, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020", + "patch": "@@ -0,0 +1 @@\n+{\"version\":3,\"file\":\"standard_relayer_api_order_provider.d.ts\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/order_providers/standard_relayer_api_order_provider.ts\"],\"names\":[],\"mappings\":\"AAIA,OAAO,EAEH,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EAExB,MAAM,UAAU,CAAC;AAIlB,qBAAa,+BAAgC,YAAW,aAAa;IACjE,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,2DAA2D;IAuB1E;;;;;OAKG;gBACS,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAO7C;;;;OAIG;IACU,cAAc,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmBvG;;;;OAIG;IACU,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAuB3F\"}\n\\ No newline at end of file" + }, + { + "sha": "0b51f468b717b5bbae06bd23b1edbc4b41bad625", + "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5adbf2a7978898a74305d522b39177ecd7602747", + "filename": "packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/order_providers/standard_relayer_api_order_provider.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a384bd1320acccb2744ba8b9c70f1a579e4c9f29", + "filename": "packages/asset-buyer/lib/src/types.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "06406774a66f791df4ffd712fe6fa8bfd9cadf30", + "filename": "packages/asset-buyer/lib/src/types.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4f623eae3754ca4cdfd20b22467de1142f46aec4", + "filename": "packages/asset-buyer/lib/src/types.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "1c03ee8d422a1051f96cc9f329f96d0a70750dea", + "filename": "packages/asset-buyer/lib/src/types.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/types.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/types.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "9ca38476db8acdb04f39bab124a6a9ba17eadfc8", + "filename": "packages/asset-buyer/lib/src/utils/assert.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2bb5a9296123ede3535bf9b3b146b92ce7702248", + "filename": "packages/asset-buyer/lib/src/utils/assert.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7e0c9b0485cf8254fb19a14c4b2c57d370e6701f", + "filename": "packages/asset-buyer/lib/src/utils/assert.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7cd6d316ae564bf6fa8baed85745b3203b36d954", + "filename": "packages/asset-buyer/lib/src/utils/assert.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/assert.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/assert.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "983ed3d62e24772d48ea1f5e8ddcde5baf3f97ec", + "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "738466134f0d49451f27560107a94dcbb1c45c42", + "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "96852f7866f00e7102a1b9cc4c17b55cdda56fc9", + "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "123b0b5029aa6b3cb6bc1b1cd1b77cf309cfe4e4", + "filename": "packages/asset-buyer/lib/src/utils/asset_data_utils.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/asset_data_utils.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/asset_data_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "3cbf57581364e05e956114912eb465d447fbad3a", + "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bf9ca187f990f368f47b1e3a9e6e6e4d9b0b5b83", + "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cd3f4de8f0b338549df6ea303f61efa0665c6c10", + "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e03f46c0018dbb6f6da556cdfd7068746819bf7e", + "filename": "packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/buy_quote_calculator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "37d1c7cbf9da1164b91e17af907039ba9c921b7e", + "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2bf648b15433f7ac38476fe53942562c653ee5fd", + "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "137688662154b3f583be93b3b27773d1d3ef6ad4", + "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c35dcec6d8ed22a7ef3e0b4db307e7beb67e03dd", + "filename": "packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/calculate_liquidity.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "319a109693cae8150ae14e6eb46daf735443059a", + "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "174b93d95d3cda7673265689732454abc6c9bce7", + "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d2e764339e3b797b905bbb91dd94e4d43d97100d", + "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "97bff31dbe611f7696f6d1962710f7e1028d30f0", + "filename": "packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_provider_response_processor.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4bba214e91427d3033da59a261cb89d5f6956055", + "filename": "packages/asset-buyer/lib/src/utils/order_utils.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "21c7d0841772139c142b4e59b02dc36c24bbe8af", + "filename": "packages/asset-buyer/lib/src/utils/order_utils.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "16e4d0de9ec658062c57fa6f3744d547be51c320", + "filename": "packages/asset-buyer/lib/src/utils/order_utils.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a5eb412067a523fffc141978fbcb29a169e4e5a0", + "filename": "packages/asset-buyer/lib/src/utils/order_utils.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/src/utils/order_utils.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/src/utils/order_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "10e4768dfe8b9f2e66ae828716856c4a660b7bfb", + "filename": "packages/asset-buyer/lib/test/asset_buyer_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c654dcc532f3664ebfe9cd1bd9b4d5f9bbdc8eda", + "filename": "packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b4d68fdf173fc8f1cce9cbd1f12d8aa7357a4a5f", + "filename": "packages/asset-buyer/lib/test/asset_buyer_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "13f51afb950350c546e4fa1f8b3c3ecc761f79be", + "filename": "packages/asset-buyer/lib/test/asset_buyer_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/asset_buyer_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/asset_buyer_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "6b665a7c1bd0e6730d82e9248999c78fceba310b", + "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7a0ad191c69d9b3e53b7cc94eed3a024ea66094c", + "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "fbaa256bedd8113de63bc88c0b7205c029918c63", + "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5267e1c4c35da9e0751e4a7591fa1abf8ed1dbe0", + "filename": "packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/buy_quote_calculator_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "9c7f6cc66fccbbef54b42b4ed88d6a8c75acc60e", + "filename": "packages/asset-buyer/lib/test/utils/chai_setup.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "148cdfb1abee7a61a48f324c74e6640dd1c3e0ed", + "filename": "packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7f7634965e1cd4e1f2334024127784e1832168d9", + "filename": "packages/asset-buyer/lib/test/utils/chai_setup.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "038f5ab7284f432e8f031ca6a41e77b4d0bf34d5", + "filename": "packages/asset-buyer/lib/test/utils/chai_setup.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/chai_setup.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/chai_setup.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "032679970025c8278866067ed3b22bd2ea1985bf", + "filename": "packages/asset-buyer/lib/test/utils/mocks.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "35202fc8746e51fb1bae3720518ccaddeb88c600", + "filename": "packages/asset-buyer/lib/test/utils/mocks.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "edb96f66027dff4124fcf44a79a142bb3cfadbd0", + "filename": "packages/asset-buyer/lib/test/utils/mocks.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "994f643b3692b5ee00118ccf1be45aa42ad4253c", + "filename": "packages/asset-buyer/lib/test/utils/mocks.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/mocks.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/mocks.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8f358eaffc6ada8b10fdb42e350c4d131bdbe7ba", + "filename": "packages/asset-buyer/lib/test/utils/test_helpers.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5c073200364fcbb0894063d9bb56722261997ed1", + "filename": "packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7130e8adc77219575d8b48463ed3974990f1d254", + "filename": "packages/asset-buyer/lib/test/utils/test_helpers.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d9d068d6d36950766e83ebbb610e48b85b0e6e8d", + "filename": "packages/asset-buyer/lib/test/utils/test_helpers.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/lib/test/utils/test_helpers.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/lib/test/utils/test_helpers.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7b7011e0b6437d2d3187424389d87827362eb1d5", + "filename": "packages/asset-buyer/src/asset_buyer.ts", + "status": "modified", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/src/asset_buyer.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/asset-buyer/src/asset_buyer.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/asset-buyer/src/asset_buyer.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2e8c18170375901afd75bd0f7870d154462cb72f", + "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "01d215359868458ca2243e3b579129fcd731f497", + "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "39c0589b41f9f973546bad0ae6b43a0d882cc1e3", + "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "eb8a8b7ae920f5bfcd6bd8818e61faaac4d6cab3", + "filename": "packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/abstract/abstract_balance_and_proxy_allowance_lazy_store.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "22efaf1dcaab0178c3dca5deae964ababa1a2a9b", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a9d66354ae856bfc069faf5538d8a689944e286e", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "6f5d60f1eb926401163ff67e57d6d4fb7d1a8433", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "07950fca48992164eda05b70f2037bd2a7e15bb9", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "fc21a8a563771a17a6c083d93650c931f61f763b", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "73ffb2435120362345484215306e0a5cefe67c29", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f00bc81768bea883505032c76e73713b6586228e", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e8c9d6b323c47715279c6654a3cc22499927e426", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/contract_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cd09d1f79b63359bad6ee342128dcb5a8930d9a1", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2e2be944397a2e4dd3e241bd849ba1410d13a5b8", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "83576a77478eaf09d8c7e8fb7622053dc48de4ea", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "50c167ab6bbe33e14d75337c6d22e9f5799526f6", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/dutch_auction_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ddbfa2603112011875909bdab559d3dbcbf6712d", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "803550bad4ac0ed6024e760eeecd5bb6bcec6c1e", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "82fe11867729bc2c664303f0d89d41fa8a427735", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "962c3a8cb8c1e38769a321970bf3534374abaab3", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_proxy_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ef33d095310e17d727706d511689d778c3eed1d8", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b9a5cfd90e689ee682b61cd4789337fc5611f7a3", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "21230117fd335038ea5e3bec0443dca1a5ae8f97", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a399fdaff2c9afd23bb07a83dc5034dc49542bf1", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc20_token_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2d80271b10c805fe2bf98ba41b7bac7718b675e2", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4966809f91d6fcd408a209b423d71a1b2db627dc", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "19805d1008ec289e7a9c6f6248154fe103f7487f", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8e153f0c74326bb2f1011b1eb11a732365dc7ea4", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_proxy_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "0f10ace5784f4904a03c216b3ad628a899a12d1f", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "fd16f4c1ead1aae6e8bef1b54462457b8f8d4d82", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bd3bb3c669df074b4bf6aa2ac3d149fd491e3ef1", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b8110cbe5c9e4f6d852198437f051d7b1ed0b7d8", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/erc721_token_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "59929175a1546e898c178eaf8e8742cff4aaf9d9", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ae7dfffc19b9540b6b3da291848e7a4617d731ae", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e0ccd5714833147dd1cf615e703a3997cc86001d", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ea66d9338c9504c23793599b0f97354c1c60b5dc", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/ether_token_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "6c82f6ae3268ab89076b498b0a1c85e2f6379f41", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b2da17bbf1ba5c5077b5b89d29e01512bc1a922f", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4604181f15faa07df36c66dc9174eea8765c7e64", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "66f6ab5da84c555ff2d5b662b12067042d3b8a28", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/exchange_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d681258323cfd0c371d3436f944f7114046c62a4", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b90e8e8865f9dda53f9a4c25670699b0dc79e534", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b0c92e115aae9c2b0cdfd03a052e848e6493f016", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b72cad605ea4ec338bd0741198dc779c11c5fe56", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/forwarder_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8360ab153554888d0d5a0ea620b65d3ca963c283", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "18392ba13fb5bed2592d09570fd67e99053f89e4", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "6364c4f6aecb44c9924b2df4c4052b638012fbd7", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f3384d89be80f5e0c62a56a0f77efa0457d6faa4", + "filename": "packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/contract_wrappers/order_validator_wrapper.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d09af8e2a801c1893dd2381acd2a8734dacaf5b3", + "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "9f7187d7a25ee1546531115e6b9aef8f859e4f56", + "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "0fd846ff7309a0e5fd840776cc20d01ba3e0384e", + "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "90f17300ea7c3ee3a79c9f4044100817703cf361", + "filename": "packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/asset_balance_and_proxy_allowance_fetcher.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "eb293375e6109cd4c6971eed61ffb2858fbd078e", + "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "83e17213c4c5fe31dbdaa29c5235cbf25742703b", + "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "51be8ed185d103488997f33aba4ac2ffae60761c", + "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "94970bf93f392b314f712d0bf2779a4adb518435", + "filename": "packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/fetchers/order_filled_cancelled_fetcher.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f5f75fe6f08ef36ef0f9f9b025316284c0f74b64", + "filename": "packages/contract-wrappers/lib/src/index.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ef631ecee407294901ea17d6ea5532e70240ee85", + "filename": "packages/contract-wrappers/lib/src/index.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "852fbb0b1ea63b65712ee70afc50adc43a3e6fe2", + "filename": "packages/contract-wrappers/lib/src/index.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8a845bdffaaa2b9e3a410d706694161cb8c0ff47", + "filename": "packages/contract-wrappers/lib/src/index.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/index.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/index.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cafc5a6934033b3fd1495685aadc58de508d2c84", + "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4457312573d4eba1f248cdd6e467a1fe14b57887", + "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cd4a9ca16e03894bd825f4cc40fa2ad9bd02372d", + "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "919fa1c15466e7538eeadaa8b867b4e82e202afe", + "filename": "packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/contract_wrappers_config_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "187df85bd213cee6e4d4b327bb941e3da020a9ea", + "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "29321fdf8dc9ced63984ca5ba750e35f9f4bbfae", + "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7c05b93ee34826961a6b998d6f67beae3afda8c7", + "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "352db89a441cf71d24e8592e8a20f07c48ad1ba9", + "filename": "packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/method_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d1c5bfa3e7186629be1bf7c377537d120dce4a88", + "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "0d21d505e75127d4f127cda9bd9d318d49e709a7", + "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "38a1b62a984e82d12ff1d8a76c4b82ed8e5599a4", + "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "848b5ff9b8fcf9d03f157630937295242eb974b4", + "filename": "packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/order_tx_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "457af1c4e04034cb28679db03fbd7deabd673229", + "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "978c8c948543dc31d7cc6e3ae5e7b91615de4a38", + "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "aa3f126c5acabda73bf6a9704c7a23ef3bec5262", + "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "13426da3d8abb0a846c7db545aa26568a4368384", + "filename": "packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/tx_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "fa4415ec80545120dfa0efe57dd62f641f6c7724", + "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e7dda4bf2d82f8f6078cc2241d76ae3b4267c426", + "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f2463650c7b0114a1ab1b18f37574d7a2e2ca6a8", + "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "6e93e21a59a09c36fc5e55164482f8ab41d3cdd0", + "filename": "packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/schemas/validate_order_fillable_opts_schema.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f7edf6d8527e972123a920103cfd0087285d93e9", + "filename": "packages/contract-wrappers/lib/src/types.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c6eb78e44bfb9c45863bf317340d00f19dabd60f", + "filename": "packages/contract-wrappers/lib/src/types.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "19bed91da0be1157a948064ae6850a6372c58fc5", + "filename": "packages/contract-wrappers/lib/src/types.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "93b07f6271b180cd35c9661d6d906d6c06c21597", + "filename": "packages/contract-wrappers/lib/src/types.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/types.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/types.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b61375a7a341e978bf1650c835dc03a60fd10937", + "filename": "packages/contract-wrappers/lib/src/utils/assert.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bf2af6d0b643b3d7f69deb60c8f8e5aba2e92ff0", + "filename": "packages/contract-wrappers/lib/src/utils/assert.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b072ddd8eba0b764e9776a5b171f46c5f1802f66", + "filename": "packages/contract-wrappers/lib/src/utils/assert.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "f0306f2d148d8de7f30be9ccfa3ac48b17de1f67", + "filename": "packages/contract-wrappers/lib/src/utils/assert.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/assert.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/assert.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cdb0ef43676e35d4f45eaa1ef04d79f5d7ad2ed0", + "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "1820a5201d0056c583cdca7da0e20b551840fdbb", + "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c7b7cc8b1d360bea858c0837064e4966186b89b3", + "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "4dbe7aaf66a07e0bbf083da05b3c44952dbef68d", + "filename": "packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/calldata_optimization_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5de7104088d64d5b2f57f719ab5c19b6f9f0a601", + "filename": "packages/contract-wrappers/lib/src/utils/constants.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c8bbd4312bf32e962b0a634fff60e6b6bc71c266", + "filename": "packages/contract-wrappers/lib/src/utils/constants.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5be2fd6b1173e64e62dcae363bb4183b62b1f41c", + "filename": "packages/contract-wrappers/lib/src/utils/constants.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7a54c61750ede98f887bc8762e1e3ce87b2ef25c", + "filename": "packages/contract-wrappers/lib/src/utils/constants.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/constants.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/constants.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bf2efb1f260e603fbb48256a16309f5480a0d566", + "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "dc207b623bc358b49fef017963716deafaf1b34f", + "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7486da408486269a719fd6bd331d0ae0b900a262", + "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bc1181bd9edb76e1e329e8e2b8e12fdf47a77a4b", + "filename": "packages/contract-wrappers/lib/src/utils/contract_addresses.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/contract_addresses.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/contract_addresses.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cf9a7f694c2f849feeaba5e5babe2c3c006f667f", + "filename": "packages/contract-wrappers/lib/src/utils/decorators.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5d830bd5752e56829756705241c8fc53b7491249", + "filename": "packages/contract-wrappers/lib/src/utils/decorators.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "87ce646774eea85e9670ee765b126cff9e00fb20", + "filename": "packages/contract-wrappers/lib/src/utils/decorators.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "cd78559049f0b1fc4893142281f4e70ada37ae8d", + "filename": "packages/contract-wrappers/lib/src/utils/decorators.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/decorators.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/decorators.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "bd8559861473c62f30c282afb502fbd862d3bbf6", + "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8618170b3b7dc35596b9860dcbb5a0c14f87b3ee", + "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b56035203e946f6afa14724546d80796f297746f", + "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "74da507febac6e0cd1f6295916d9980dff24ee0b", + "filename": "packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/exchange_transfer_simulator.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e54230719ba50ba8af35ceb5ee1b27c36f058620", + "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "03c53aa1e46c74f52d597de326aaecda0b32c11d", + "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "ea0176059c722ce2ba16573e1537587653ef27f8", + "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "145609e52ea60c728c72c15687c7c834ee4f7c8a", + "filename": "packages/contract-wrappers/lib/src/utils/filter_utils.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/filter_utils.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/filter_utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7c655d40b44054e7ebc0f264591c9a75027f3aa1", + "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d76d76ace3cdcb9e78337aecbae768e8d07ad652", + "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e1c5d671fc3a40ffa520c88670f2653624612078", + "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e59424f06cb9bb22e026bdae87c033f2761baa4e", + "filename": "packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/transaction_encoder.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "9d636cab1cba3e23a6cca2f4fc48c7c0984abae8", + "filename": "packages/contract-wrappers/lib/src/utils/utils.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "62631a96dc5cbdf31399b54d1757428b292154b8", + "filename": "packages/contract-wrappers/lib/src/utils/utils.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "8aa8364744936ca4fc5ba931089162948edf520f", + "filename": "packages/contract-wrappers/lib/src/utils/utils.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a3c18a94eeb95b07cd8aba1fb5fae1983758fa3b", + "filename": "packages/contract-wrappers/lib/src/utils/utils.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/src/utils/utils.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/src/utils/utils.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "d6cbe40c2924c3c20bd364779f3ab0cb35b23e2d", + "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c81f1925ea457c36d5e508caf76ad2158e2de107", + "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "5723fdf6d5ff11f593876c3712e68b5f70e85d92", + "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2cfe7606f9c469e55a6867649618755ad767e381", + "filename": "packages/contract-wrappers/lib/test/calldata_decoder_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_decoder_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_decoder_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "e8b93e9d824274264f3fa6c850faf73d8bd0dde7", + "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "211be3201693bec7b30bc6c2c666a5d505ca88a8", + "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "a2139d607e3e7aa8d9c01e0310fd780b11577b66", + "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "684fe94e3cdcd00e285d1f2252c770a0d7ce4d33", + "filename": "packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/calldata_optimization_utils_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "2a5c67822d0000f2fbea74f7395b6fc41333074f", + "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7e098d49cb3ce789ee314742589680438d6a7a38", + "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "9d7755a5520115eb4307e453fe4962d9b3d7f3e4", + "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7855079ed73d31971ed253ce4b9bd033b5998da4", + "filename": "packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/dutch_auction_wrapper_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "031d30b12b6d18030a18161df33af9fda3a0c61f", + "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "582deb76edddcaaa297c48aababe895a4a7e5552", + "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "389e385dfd09024b78bff9f24d34f719ab9fb48c", + "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "73f5be3e4f164eaefee590da54111b91351128d4", + "filename": "packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_proxy_wrapper_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "7cd093498c87df797d7e9f3e90ce15ed9c2aca9d", + "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "35d2716838cd00dd4bbfcc479101f131e4e85acc", + "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "adb4c3aa4cb3848ca62a67f597297b7cd421df08", + "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "3986928a5a8a122a9cf62b85f665068cc6067419", + "filename": "packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc20_wrapper_test.js.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "575a5889fb0f656ddba2a75d42ee3add2bce491a", + "filename": "packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "c3e4ebabdfd6be8f9a021316f0a8793371825ba0", + "filename": "packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.d.ts.map?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + }, + { + "sha": "b37ac6795019e1d9b725da2862e7c08fb20002b9", + "filename": "packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js", + "status": "added", + "additions": 0, + "deletions": 0, + "changes": 0, + "blob_url": "https://github.com/0xProject/0x-monorepo/blob/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js", + "raw_url": "https://github.com/0xProject/0x-monorepo/raw/e23547d5dac2626e326dec0d1d27aa11b290d020/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js", + "contents_url": "https://api.github.com/repos/0xProject/0x-monorepo/contents/packages/contract-wrappers/lib/test/erc721_proxy_wrapper_test.js?ref=e23547d5dac2626e326dec0d1d27aa11b290d020" + } + ] +} diff --git a/packages/pipeline/test/fixtures/github/api_v3_forks.json b/packages/pipeline/test/fixtures/github/api_v3_forks.json index 804b099675..3f6e9ae7fb 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_forks.json +++ b/packages/pipeline/test/fixtures/github/api_v3_forks.json @@ -1,102 +1,101 @@ [ { - "id": 174764562, - "node_id": "MDEwOlJlcG9zaXRvcnkxNzQ3NjQ1NjI=", - "name": "0x-monorepo", - "full_name": "NoahZinsmeister/0x-monorepo", - "private": false, - "owner": { - "login": "NoahZinsmeister", - "id": 3760414, - "node_id": "MDQ6VXNlcjM3NjA0MTQ=", - "avatar_url": "https://avatars3.githubusercontent.com/u/3760414?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/NoahZinsmeister", - "html_url": "https://github.com/NoahZinsmeister", - "followers_url": "https://api.github.com/users/NoahZinsmeister/followers", - "following_url": "https://api.github.com/users/NoahZinsmeister/following{/other_user}", - "gists_url": "https://api.github.com/users/NoahZinsmeister/gists{/gist_id}", - "starred_url": "https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/NoahZinsmeister/subscriptions", - "organizations_url": "https://api.github.com/users/NoahZinsmeister/orgs", - "repos_url": "https://api.github.com/users/NoahZinsmeister/repos", - "events_url": "https://api.github.com/users/NoahZinsmeister/events{/privacy}", - "received_events_url": "https://api.github.com/users/NoahZinsmeister/received_events", - "type": "User", - "site_admin": false - }, - "html_url": "https://github.com/NoahZinsmeister/0x-monorepo", - "description": "0x protocol monorepo - includes our smart contracts and many developer tools", - "fork": true, - "url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo", - "forks_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/forks", - "keys_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/keys{/key_id}", - "collaborators_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/collaborators{/collaborator}", - "teams_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/teams", - "hooks_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/hooks", - "issue_events_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/issues/events{/number}", - "events_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/events", - "assignees_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/assignees{/user}", - "branches_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/branches{/branch}", - "tags_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/tags", - "blobs_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/blobs{/sha}", - "git_tags_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/tags{/sha}", - "git_refs_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/refs{/sha}", - "trees_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/trees{/sha}", - "statuses_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/statuses/{sha}", - "languages_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/languages", - "stargazers_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/stargazers", - "contributors_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/contributors", - "subscribers_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/subscribers", - "subscription_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/subscription", - "commits_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/commits{/sha}", - "git_commits_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/commits{/sha}", - "comments_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/comments{/number}", - "issue_comment_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/issues/comments{/number}", - "contents_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/contents/{+path}", - "compare_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/compare/{base}...{head}", - "merges_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/merges", - "archive_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/{archive_format}{/ref}", - "downloads_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/downloads", - "issues_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/issues{/number}", - "pulls_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/pulls{/number}", - "milestones_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/milestones{/number}", - "notifications_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/notifications{?since,all,participating}", - "labels_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/labels{/name}", - "releases_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/releases{/id}", - "deployments_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/deployments", - "created_at": "2019-03-10T01:23:30Z", - "updated_at": "2019-03-10T04:12:03Z", - "pushed_at": "2019-03-10T04:12:00Z", - "git_url": "git://github.com/NoahZinsmeister/0x-monorepo.git", - "ssh_url": "git@github.com:NoahZinsmeister/0x-monorepo.git", - "clone_url": "https://github.com/NoahZinsmeister/0x-monorepo.git", - "svn_url": "https://github.com/NoahZinsmeister/0x-monorepo", - "homepage": "", - "size": 86271, - "stargazers_count": 0, - "watchers_count": 0, - "language": "TypeScript", - "has_issues": false, - "has_projects": true, - "has_downloads": true, - "has_wiki": false, - "has_pages": false, - "forks_count": 0, - "mirror_url": null, - "archived": false, - "open_issues_count": 0, - "license": { - "key": "other", - "name": "Other", - "spdx_id": "NOASSERTION", - "url": null, - "node_id": "MDc6TGljZW5zZTA=" - }, - "forks": 0, - "open_issues": 0, - "watchers": 0, - "default_branch": "development" + "id": 174764562, + "node_id": "MDEwOlJlcG9zaXRvcnkxNzQ3NjQ1NjI=", + "name": "0x-monorepo", + "full_name": "NoahZinsmeister/0x-monorepo", + "private": false, + "owner": { + "login": "NoahZinsmeister", + "id": 3760414, + "node_id": "MDQ6VXNlcjM3NjA0MTQ=", + "avatar_url": "https://avatars3.githubusercontent.com/u/3760414?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/NoahZinsmeister", + "html_url": "https://github.com/NoahZinsmeister", + "followers_url": "https://api.github.com/users/NoahZinsmeister/followers", + "following_url": "https://api.github.com/users/NoahZinsmeister/following{/other_user}", + "gists_url": "https://api.github.com/users/NoahZinsmeister/gists{/gist_id}", + "starred_url": "https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/NoahZinsmeister/subscriptions", + "organizations_url": "https://api.github.com/users/NoahZinsmeister/orgs", + "repos_url": "https://api.github.com/users/NoahZinsmeister/repos", + "events_url": "https://api.github.com/users/NoahZinsmeister/events{/privacy}", + "received_events_url": "https://api.github.com/users/NoahZinsmeister/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/NoahZinsmeister/0x-monorepo", + "description": "0x protocol monorepo - includes our smart contracts and many developer tools", + "fork": true, + "url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo", + "forks_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/forks", + "keys_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/teams", + "hooks_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/hooks", + "issue_events_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/issues/events{/number}", + "events_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/events", + "assignees_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/assignees{/user}", + "branches_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/branches{/branch}", + "tags_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/tags", + "blobs_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/languages", + "stargazers_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/stargazers", + "contributors_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/contributors", + "subscribers_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/subscribers", + "subscription_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/subscription", + "commits_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/contents/{+path}", + "compare_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/merges", + "archive_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/downloads", + "issues_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/issues{/number}", + "pulls_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/labels{/name}", + "releases_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/releases{/id}", + "deployments_url": "https://api.github.com/repos/NoahZinsmeister/0x-monorepo/deployments", + "created_at": "2019-03-10T01:23:30Z", + "updated_at": "2019-03-10T04:12:03Z", + "pushed_at": "2019-03-10T04:12:00Z", + "git_url": "git://github.com/NoahZinsmeister/0x-monorepo.git", + "ssh_url": "git@github.com:NoahZinsmeister/0x-monorepo.git", + "clone_url": "https://github.com/NoahZinsmeister/0x-monorepo.git", + "svn_url": "https://github.com/NoahZinsmeister/0x-monorepo", + "homepage": "", + "size": 86271, + "stargazers_count": 0, + "watchers_count": 0, + "language": "TypeScript", + "has_issues": false, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 0, + "open_issues": 0, + "watchers": 0, + "default_branch": "development" } - ] - \ No newline at end of file +] From 5eedc1edcacce345ec4c4a430d14d6df04b006ee Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 11 Mar 2019 14:38:00 +0100 Subject: [PATCH 08/95] Add Coordinator contracts to contract-artifacts package --- .../artifacts/Coordinator.json | 364 ++++++++++++++++++ .../artifacts/CoordinatorRegistry.json | 122 ++++++ packages/contract-artifacts/src/index.ts | 4 + packages/contract-artifacts/tsconfig.json | 4 +- 4 files changed, 493 insertions(+), 1 deletion(-) create mode 100644 packages/contract-artifacts/artifacts/Coordinator.json create mode 100644 packages/contract-artifacts/artifacts/CoordinatorRegistry.json diff --git a/packages/contract-artifacts/artifacts/Coordinator.json b/packages/contract-artifacts/artifacts/Coordinator.json new file mode 100644 index 0000000000..3cc8a1fdd5 --- /dev/null +++ b/packages/contract-artifacts/artifacts/Coordinator.json @@ -0,0 +1,364 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "Coordinator", + "compilerOutput": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "bytes32" + }, + { + "name": "signature", + "type": "bytes" + } + ], + "name": "getSignerAddress", + "outputs": [ + { + "name": "signerAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "executeTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidCoordinatorApprovals", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EIP712_DOMAIN_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "components": [ + { + "name": "makerAddress", + "type": "address" + }, + { + "name": "takerAddress", + "type": "address" + }, + { + "name": "feeRecipientAddress", + "type": "address" + }, + { + "name": "senderAddress", + "type": "address" + }, + { + "name": "makerAssetAmount", + "type": "uint256" + }, + { + "name": "takerAssetAmount", + "type": "uint256" + }, + { + "name": "makerFee", + "type": "uint256" + }, + { + "name": "takerFee", + "type": "uint256" + }, + { + "name": "expirationTimeSeconds", + "type": "uint256" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "makerAssetData", + "type": "bytes" + }, + { + "name": "takerAssetData", + "type": "bytes" + } + ], + "name": "orders", + "type": "tuple[]" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTransactionOrdersApproval", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_exchange", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x60806040523480156200001157600080fd5b506040516020806200238083398101806040526200003391908101906200022b565b604080517f454950373132446f6d61696e28000000000000000000000000000000000000006020808301919091527f737472696e67206e616d652c0000000000000000000000000000000000000000602d8301527f737472696e672076657273696f6e2c000000000000000000000000000000000060398301527f6164647265737320766572696679696e67436f6e74726163740000000000000060488301527f29000000000000000000000000000000000000000000000000000000000000006061830152825180830360420181526062830180855281519183019190912060a28401855260179091527f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000060829093019290925282518084018452600581527f312e302e30000000000000000000000000000000000000000000000000000000908201528251808201929092527f626d101e477fd17dd52afb3f9ad9eb016bf60f6e377877f34e8f3ea84c930236828401527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060830152306080808401919091528351808403909101815260a0909201909252805191012060005560018054600160a060020a031916600160a060020a039290921691909117905562000273565b600062000224825162000260565b9392505050565b6000602082840312156200023e57600080fd5b60006200024c848462000216565b949350505050565b600160a060020a031690565b60006200026d8262000254565b92915050565b6120fd80620002836000396000f3fe608060405234801561001057600080fd5b5060043610610084576000357c010000000000000000000000000000000000000000000000000000000090048063d2df07331161006d578063d2df0733146100c7578063e306f779146100da578063e3b1aa86146100ef57610084565b80630f7d8e391461008957806390c3bc3f146100b2575b600080fd5b61009c610097366004611888565b610102565b6040516100a99190611e6f565b60405180910390f35b6100c56100c036600461196e565b6104f7565b005b6100c56100d536600461196e565b6105a3565b6100e26105d4565b6040516100a99190611e7d565b6100c56100fd366004611a42565b6105da565b6000808251111515610149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f3b565b60405180910390fd5b600061015483610821565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f2b565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff6108e516565b905060006102c687602163ffffffff6108e516565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff6108e516565b9050600061041287602163ffffffff6108e516565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b92915050565b61050485858585856105a3565b6001548551602087015160408089015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361056a93909290918990600401611f5b565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050505050505050565b60606105b28660400151610930565b90506000815111156105cc576105cc8682878787876105da565b505050505050565b60005481565b3273ffffffffffffffffffffffffffffffffffffffff851614610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f0b565b600061063487610de8565b60408051600080825260208201909252845192935091905b80821461073c576000868281518110151561066357fe5b906020019060200201519050610677611220565b506040805160808101825273ffffffffffffffffffffffffffffffffffffffff8b16815260208101879052908101899052606081018290524282116106e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611edb565b60006106f382610dfb565b90506000610718828a8781518110151561070957fe5b90602001906020020151610102565b905061072a878263ffffffff610e0916565b9650506001909301925061064c915050565b5061074d823263ffffffff610e0916565b885190925060005b8082146108145789516000908b908390811061076d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561079c5761080c565b60008a828151811015156107ac57fe5b6020908102909101015160400151905060006107ce868363ffffffff610ed316565b9050801515610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e9b565b50505b600101610755565b5050505050505050505050565b600080825111151561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f1b565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061088f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eeb565b50016020015190565b60606000610944838263ffffffff610f1016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d50000000000000000000000000000000000000000000000000000000014806109d757507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610a2357507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610aad57610a30611248565b8351610a4690859060049063ffffffff610f7d16565b806020019051610a5991908101906118da565b604080516001808252818301909252919250816020015b610a78611248565b815260200190600190039081610a7057905050925080836000815181101515610a9d57fe5b6020908102909101015250610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610b3e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610b8a57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610bd657507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610c2257507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610c6e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610cba57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610cef578251610cd590849060049063ffffffff610f7d16565b806020019051610ce8919081019061184b565b9150610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610de257610d41611248565b610d49611248565b8451610d5f90869060049063ffffffff610f7d16565b806020019051610d72919081019061190f565b60408051600280825260608201909252929450909250816020015b610d95611248565b815260200190600190039081610d8d57905050935081846000815181101515610dba57fe5b602090810290910101528351819085906001908110610dd557fe5b6020908102909101015250505b50919050565b60006104f1610df683611049565b6110b7565b60006104f1610df6836110f7565b815160405160609184906020808202808401820192910182851015610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ecb565b82851115610e7457610e6d858583611156565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610ea157fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b6000602083510260208401818101815b81811015610f0657805180871415610efd57600195508291505b50602001610ee3565b5050505092915050565b600081600401835110151515610f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f4b565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eab565b8351821115610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ebb565b8282036040519080825280601f01601f191660200182016040528015611021576020820181803883390190505b5090506110426110308261121a565b8461103a8761121a565b018351611156565b9392505050565b604081810151825160209384015182519285019290922083517f213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c81529485019190915273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260608201526080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b604080820151825160208085015160608681015185519584019590952086517f2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e058152938401949094529482015292830152608082015260a09020919050565b6020811015611180576001816020036101000a038019835116818551168082178652505050611215565b8282141561118d57611215565b828211156111c75760208103905080820181840181515b828510156111bf5784518652602095860195909401936111a4565b905250611215565b60208103905080820181840183515b8186121561121057825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111d6565b855250505b505050565b60200190565b6040805160808101825260008082526020820181905260609282018390529181019190915290565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006110428235612038565b60006110428251612038565b6000601f8201831361132b57600080fd5b813561133e61133982611fcd565b611fa6565b81815260209384019390925082018360005b83811015610f06578135860161136688826114b2565b8452506020928301929190910190600101611350565b6000601f8201831361138d57600080fd5b815161139b61133982611fcd565b81815260209384019390925082018360005b83811015610f0657815186016113c38882611690565b84525060209283019291909101906001016113ad565b6000601f820183136113ea57600080fd5b81356113f861133982611fcd565b81815260209384019390925082018360005b83811015610f0657813586016114208882611547565b845250602092830192919091019060010161140a565b6000601f8201831361144757600080fd5b813561145561133982611fcd565b9150818183526020840193506020810190508385602084028201111561147a57600080fd5b60005b83811015610f06578161149088826114a6565b845250602092830192919091019060010161147d565b60006110428235612043565b6000601f820183136114c357600080fd5b81356114d161133982611fee565b915080825260208301602083018583830111156114ed57600080fd5b6114f883828461205f565b50505092915050565b6000601f8201831361151257600080fd5b815161152061133982611fee565b9150808252602083016020830185838301111561153c57600080fd5b6114f883828461206b565b6000610180828403121561155a57600080fd5b611565610180611fa6565b905060006115738484611302565b825250602061158484848301611302565b602083015250604061159884828501611302565b60408301525060606115ac84828501611302565b60608301525060806115c0848285016114a6565b60808301525060a06115d4848285016114a6565b60a08301525060c06115e8848285016114a6565b60c08301525060e06115fc848285016114a6565b60e083015250610100611611848285016114a6565b61010083015250610120611627848285016114a6565b6101208301525061014082013567ffffffffffffffff81111561164957600080fd5b611655848285016114b2565b6101408301525061016082013567ffffffffffffffff81111561167757600080fd5b611683848285016114b2565b6101608301525092915050565b600061018082840312156116a357600080fd5b6116ae610180611fa6565b905060006116bc848461130e565b82525060206116cd8484830161130e565b60208301525060406116e18482850161130e565b60408301525060606116f58482850161130e565b60608301525060806117098482850161183f565b60808301525060a061171d8482850161183f565b60a08301525060c06117318482850161183f565b60c08301525060e06117458482850161183f565b60e08301525061010061175a8482850161183f565b610100830152506101206117708482850161183f565b6101208301525061014082015167ffffffffffffffff81111561179257600080fd5b61179e84828501611501565b6101408301525061016082015167ffffffffffffffff8111156117c057600080fd5b61168384828501611501565b6000606082840312156117de57600080fd5b6117e86060611fa6565b905060006117f684846114a6565b825250602061180784848301611302565b602083015250604082013567ffffffffffffffff81111561182757600080fd5b611833848285016114b2565b60408301525092915050565b60006110428251612043565b60006020828403121561185d57600080fd5b815167ffffffffffffffff81111561187457600080fd5b6118808482850161137c565b949350505050565b6000806040838503121561189b57600080fd5b60006118a785856114a6565b925050602083013567ffffffffffffffff8111156118c457600080fd5b6118d0858286016114b2565b9150509250929050565b6000602082840312156118ec57600080fd5b815167ffffffffffffffff81111561190357600080fd5b61188084828501611690565b6000806040838503121561192257600080fd5b825167ffffffffffffffff81111561193957600080fd5b61194585828601611690565b925050602083015167ffffffffffffffff81111561196257600080fd5b6118d085828601611690565b600080600080600060a0868803121561198657600080fd5b853567ffffffffffffffff81111561199d57600080fd5b6119a9888289016117cc565b95505060206119ba88828901611302565b945050604086013567ffffffffffffffff8111156119d757600080fd5b6119e3888289016114b2565b935050606086013567ffffffffffffffff811115611a0057600080fd5b611a0c88828901611436565b925050608086013567ffffffffffffffff811115611a2957600080fd5b611a358882890161131a565b9150509295509295909350565b60008060008060008060c08789031215611a5b57600080fd5b863567ffffffffffffffff811115611a7257600080fd5b611a7e89828a016117cc565b965050602087013567ffffffffffffffff811115611a9b57600080fd5b611aa789828a016113d9565b9550506040611ab889828a01611302565b945050606087013567ffffffffffffffff811115611ad557600080fd5b611ae189828a016114b2565b935050608087013567ffffffffffffffff811115611afe57600080fd5b611b0a89828a01611436565b92505060a087013567ffffffffffffffff811115611b2757600080fd5b611b3389828a0161131a565b9150509295509295509295565b611b4981612038565b82525050565b611b4981612043565b6000611b6382612034565b808452611b7781602086016020860161206b565b611b808161209b565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b600e81527f494e56414c49445f4f524947494e000000000000000000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611b40565b602081016104f18284611b4f565b602080825281016104f181611b8d565b602080825281016104f181611bbd565b602080825281016104f181611bed565b602080825281016104f181611c1d565b602080825281016104f181611c4d565b602080825281016104f181611c7d565b602080825281016104f181611cad565b602080825281016104f181611d03565b602080825281016104f181611d33565b602080825281016104f181611d63565b602080825281016104f181611db9565b602080825281016104f181611de9565b602080825281016104f181611e19565b60808101611f698287611b4f565b611f766020830186611b40565b8181036040830152611f888185611b58565b90508181036060830152611f9c8184611b58565b9695505050505050565b60405181810167ffffffffffffffff81118282101715611fc557600080fd5b604052919050565b600067ffffffffffffffff821115611fe457600080fd5b5060209081020190565b600067ffffffffffffffff82111561200557600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612046565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561208657818101518382015260200161206e565b83811115612095576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a7230582013be4e9e281ff59b6be3d1c4c7af6075c7d255edc60be429d25841f98f287b3e6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x2380 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x33 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x22B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0x2D DUP4 ADD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0x39 DUP4 ADD MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0x48 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x61 DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB PUSH1 0x42 ADD DUP2 MSTORE PUSH1 0x62 DUP4 ADD DUP1 DUP6 MSTORE DUP2 MLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0xA2 DUP5 ADD DUP6 MSTORE PUSH1 0x17 SWAP1 SWAP2 MSTORE PUSH32 0x30782050726F746F636F6C20436F6F7264696E61746F72000000000000000000 PUSH1 0x82 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP3 ADD MSTORE DUP3 MLOAD DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0x626D101E477FD17DD52AFB3F9AD9EB016BF60F6E377877F34E8F3EA84C930236 DUP3 DUP5 ADD MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP4 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x273 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x224 DUP3 MLOAD PUSH3 0x260 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x24C DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26D DUP3 PUSH3 0x254 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x20FD DUP1 PUSH3 0x283 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xD2DF0733 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD2DF0733 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE3B1AA86 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x90C3BC3F EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1888 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E7D JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F3B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x821 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F2B JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP6 MLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x56A SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x598 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B2 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x930 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x5CC JUMPI PUSH2 0x5CC DUP7 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x5DA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST ORIGIN PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EQ PUSH2 0x629 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634 DUP8 PUSH2 0xDE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP1 DUP3 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x663 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x677 PUSH2 0x1220 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EDB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F3 DUP3 PUSH2 0xDFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x718 DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x709 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x72A DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x64C SWAP2 POP POP JUMP JUMPDEST POP PUSH2 0x74D DUP3 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST DUP9 MLOAD SWAP1 SWAP3 POP PUSH1 0x0 JUMPDEST DUP1 DUP3 EQ PUSH2 0x814 JUMPI DUP10 MLOAD PUSH1 0x0 SWAP1 DUP12 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x76D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x79C JUMPI PUSH2 0x80C JUMP JUMPDEST PUSH1 0x0 DUP11 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x7AC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x7CE DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xED3 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E9B JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x755 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x88F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EEB JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x944 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF10 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x9D7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xA23 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xAAD JUMPI PUSH2 0xA30 PUSH2 0x1248 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xA46 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xA59 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xA78 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xA70 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB3E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xB8A JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBD6 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC22 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC6E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCBA JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xCEF JUMPI DUP3 MLOAD PUSH2 0xCD5 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xCE8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x184B JUMP JUMPDEST SWAP2 POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xDE2 JUMPI PUSH2 0xD41 PUSH2 0x1248 JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1248 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xD5F SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD72 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x190F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xD95 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8D JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDBA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xDD5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x1049 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x10F7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0xE5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0xE74 JUMPI PUSH2 0xE6D DUP6 DUP6 DUP4 PUSH2 0x1156 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEA1 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD MUL PUSH1 0x20 DUP5 ADD DUP2 DUP2 ADD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP1 MLOAD DUP1 DUP8 EQ ISZERO PUSH2 0xEFD JUMPI PUSH1 0x1 SWAP6 POP DUP3 SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD PUSH2 0xEE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F4B JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1042 PUSH2 0x1030 DUP3 PUSH2 0x121A JUMP JUMPDEST DUP5 PUSH2 0x103A DUP8 PUSH2 0x121A JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x1156 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD MLOAD DUP3 MLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD PUSH32 0x213C6F636F3EA94E701C0ADF9B2624AA45A6C694F9A292C094F9A81C24B5DF4C DUP2 MSTORE SWAP5 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP7 DUP2 ADD MLOAD DUP6 MLOAD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 DUP7 MLOAD PUSH32 0x2FBCDBAA76BC7589916958AE919DFBEF04D23F6BBF26DE6FF317B32C6CC01E05 DUP2 MSTORE SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 DUP3 ADD MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 SWAP1 KECCAK256 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1180 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x118D JUMPI PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x11C7 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x11BF JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x11A4 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x1210 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x11D6 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x132B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x133E PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x1FA6 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1366 DUP9 DUP3 PUSH2 0x14B2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1350 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x139B PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x13C3 DUP9 DUP3 PUSH2 0x1690 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13F8 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1420 DUP9 DUP3 PUSH2 0x1547 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x140A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1455 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 PUSH2 0x1490 DUP9 DUP3 PUSH2 0x14A6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x147D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x14C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14D1 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x14ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x205F JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1520 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x153C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x206B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1565 PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1573 DUP5 DUP5 PUSH2 0x1302 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1584 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1598 DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x15AC DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x15C0 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x15D4 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x15E8 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x15FC DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1611 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1627 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1655 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AE PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16BC DUP5 DUP5 PUSH2 0x130E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x16CD DUP5 DUP5 DUP4 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16E1 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16F5 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1709 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x171D DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1731 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1745 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x175A DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1770 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x179E DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E8 PUSH1 0x60 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17F6 DUP5 DUP5 PUSH2 0x14A6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1807 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1833 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x137C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x189B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A7 DUP6 DUP6 PUSH2 0x14A6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1945 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A9 DUP9 DUP3 DUP10 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x19BA DUP9 DUP3 DUP10 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E3 DUP9 DUP3 DUP10 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0C DUP9 DUP3 DUP10 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A35 DUP9 DUP3 DUP10 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A7E DUP10 DUP3 DUP11 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AA7 DUP10 DUP3 DUP11 ADD PUSH2 0x13D9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1AB8 DUP10 DUP3 DUP11 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AE1 DUP10 DUP3 DUP11 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0A DUP10 DUP3 DUP11 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B33 DUP10 DUP3 DUP11 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2038 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B63 DUP3 PUSH2 0x2034 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1B77 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1B80 DUP2 PUSH2 0x209B JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F4F524947494E000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B40 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B4F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1B8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BBD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C7D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1CAD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D03 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DE9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E19 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x1F69 DUP3 DUP8 PUSH2 0x1B4F JUMP JUMPDEST PUSH2 0x1F76 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B40 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1F88 DUP2 DUP6 PUSH2 0x1B58 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1F9C DUP2 DUP5 PUSH2 0x1B58 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2005 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2046 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2086 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x206E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 SGT 0xbe 0x4e SWAP15 0x28 0x1f CREATE2 SWAP12 PUSH12 0xE3D1C4C7AF6075C7D255EDC6 SIGNEXTEND 0xe4 0x29 0xd2 PC COINBASE 0xf9 DUP16 0x28 PUSH28 0x3E6C6578706572696D656E74616CF500370000000000000000000000 ", + "sourceMap": "837:227:0:-;;;977:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;977:85:0;;;;;;;;;;;;;;;;;;;;;;1067:148:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;1067:148:10;;;;;;1057:159;;;;;;;;;1533:18;;;;;;;;;;;;;;;;;;1583:21;;;;;;;;;;;;;;;1438:214;;;;;;;;;1517:36;1438:214;;;;1567:39;1438:214;;;;1636:4;1438:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1438:214:10;;;;;;;1428:225;;;;;-1:-1:-1;1407:246:10;1067:148;830:35:8;;-1:-1:-1;;;;;;830:35:8;-1:-1:-1;;;;;830:35:8;;;;;;;;;;837:227:0;;5:122:-1;;83:39;114:6;108:13;83:39;;;74:48;68:59;-1:-1;;;68:59;134:263;;249:2;237:9;228:7;224:23;220:32;217:2;;;265:1;262;255:12;217:2;300:1;317:64;373:7;353:9;317:64;;;307:74;211:186;-1:-1;;;;211:186;404:128;-1:-1;;;;;473:54;;456:76;539:105;;608:31;633:5;608:31;;;597:42;591:53;-1:-1;;591:53;;837:227:0;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610084576000357c010000000000000000000000000000000000000000000000000000000090048063d2df07331161006d578063d2df0733146100c7578063e306f779146100da578063e3b1aa86146100ef57610084565b80630f7d8e391461008957806390c3bc3f146100b2575b600080fd5b61009c610097366004611888565b610102565b6040516100a99190611e6f565b60405180910390f35b6100c56100c036600461196e565b6104f7565b005b6100c56100d536600461196e565b6105a3565b6100e26105d4565b6040516100a99190611e7d565b6100c56100fd366004611a42565b6105da565b6000808251111515610149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f3b565b60405180910390fd5b600061015483610821565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f2b565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff6108e516565b905060006102c687602163ffffffff6108e516565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff6108e516565b9050600061041287602163ffffffff6108e516565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b92915050565b61050485858585856105a3565b6001548551602087015160408089015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361056a93909290918990600401611f5b565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050505050505050565b60606105b28660400151610930565b90506000815111156105cc576105cc8682878787876105da565b505050505050565b60005481565b3273ffffffffffffffffffffffffffffffffffffffff851614610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f0b565b600061063487610de8565b60408051600080825260208201909252845192935091905b80821461073c576000868281518110151561066357fe5b906020019060200201519050610677611220565b506040805160808101825273ffffffffffffffffffffffffffffffffffffffff8b16815260208101879052908101899052606081018290524282116106e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611edb565b60006106f382610dfb565b90506000610718828a8781518110151561070957fe5b90602001906020020151610102565b905061072a878263ffffffff610e0916565b9650506001909301925061064c915050565b5061074d823263ffffffff610e0916565b885190925060005b8082146108145789516000908b908390811061076d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561079c5761080c565b60008a828151811015156107ac57fe5b6020908102909101015160400151905060006107ce868363ffffffff610ed316565b9050801515610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e9b565b50505b600101610755565b5050505050505050505050565b600080825111151561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f1b565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061088f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eeb565b50016020015190565b60606000610944838263ffffffff610f1016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d50000000000000000000000000000000000000000000000000000000014806109d757507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610a2357507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610aad57610a30611248565b8351610a4690859060049063ffffffff610f7d16565b806020019051610a5991908101906118da565b604080516001808252818301909252919250816020015b610a78611248565b815260200190600190039081610a7057905050925080836000815181101515610a9d57fe5b6020908102909101015250610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610b3e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610b8a57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610bd657507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610c2257507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610c6e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610cba57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610cef578251610cd590849060049063ffffffff610f7d16565b806020019051610ce8919081019061184b565b9150610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610de257610d41611248565b610d49611248565b8451610d5f90869060049063ffffffff610f7d16565b806020019051610d72919081019061190f565b60408051600280825260608201909252929450909250816020015b610d95611248565b815260200190600190039081610d8d57905050935081846000815181101515610dba57fe5b602090810290910101528351819085906001908110610dd557fe5b6020908102909101015250505b50919050565b60006104f1610df683611049565b6110b7565b60006104f1610df6836110f7565b815160405160609184906020808202808401820192910182851015610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ecb565b82851115610e7457610e6d858583611156565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610ea157fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b6000602083510260208401818101815b81811015610f0657805180871415610efd57600195508291505b50602001610ee3565b5050505092915050565b600081600401835110151515610f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f4b565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eab565b8351821115610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ebb565b8282036040519080825280601f01601f191660200182016040528015611021576020820181803883390190505b5090506110426110308261121a565b8461103a8761121a565b018351611156565b9392505050565b604081810151825160209384015182519285019290922083517f213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c81529485019190915273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260608201526080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b604080820151825160208085015160608681015185519584019590952086517f2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e058152938401949094529482015292830152608082015260a09020919050565b6020811015611180576001816020036101000a038019835116818551168082178652505050611215565b8282141561118d57611215565b828211156111c75760208103905080820181840181515b828510156111bf5784518652602095860195909401936111a4565b905250611215565b60208103905080820181840183515b8186121561121057825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111d6565b855250505b505050565b60200190565b6040805160808101825260008082526020820181905260609282018390529181019190915290565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006110428235612038565b60006110428251612038565b6000601f8201831361132b57600080fd5b813561133e61133982611fcd565b611fa6565b81815260209384019390925082018360005b83811015610f06578135860161136688826114b2565b8452506020928301929190910190600101611350565b6000601f8201831361138d57600080fd5b815161139b61133982611fcd565b81815260209384019390925082018360005b83811015610f0657815186016113c38882611690565b84525060209283019291909101906001016113ad565b6000601f820183136113ea57600080fd5b81356113f861133982611fcd565b81815260209384019390925082018360005b83811015610f0657813586016114208882611547565b845250602092830192919091019060010161140a565b6000601f8201831361144757600080fd5b813561145561133982611fcd565b9150818183526020840193506020810190508385602084028201111561147a57600080fd5b60005b83811015610f06578161149088826114a6565b845250602092830192919091019060010161147d565b60006110428235612043565b6000601f820183136114c357600080fd5b81356114d161133982611fee565b915080825260208301602083018583830111156114ed57600080fd5b6114f883828461205f565b50505092915050565b6000601f8201831361151257600080fd5b815161152061133982611fee565b9150808252602083016020830185838301111561153c57600080fd5b6114f883828461206b565b6000610180828403121561155a57600080fd5b611565610180611fa6565b905060006115738484611302565b825250602061158484848301611302565b602083015250604061159884828501611302565b60408301525060606115ac84828501611302565b60608301525060806115c0848285016114a6565b60808301525060a06115d4848285016114a6565b60a08301525060c06115e8848285016114a6565b60c08301525060e06115fc848285016114a6565b60e083015250610100611611848285016114a6565b61010083015250610120611627848285016114a6565b6101208301525061014082013567ffffffffffffffff81111561164957600080fd5b611655848285016114b2565b6101408301525061016082013567ffffffffffffffff81111561167757600080fd5b611683848285016114b2565b6101608301525092915050565b600061018082840312156116a357600080fd5b6116ae610180611fa6565b905060006116bc848461130e565b82525060206116cd8484830161130e565b60208301525060406116e18482850161130e565b60408301525060606116f58482850161130e565b60608301525060806117098482850161183f565b60808301525060a061171d8482850161183f565b60a08301525060c06117318482850161183f565b60c08301525060e06117458482850161183f565b60e08301525061010061175a8482850161183f565b610100830152506101206117708482850161183f565b6101208301525061014082015167ffffffffffffffff81111561179257600080fd5b61179e84828501611501565b6101408301525061016082015167ffffffffffffffff8111156117c057600080fd5b61168384828501611501565b6000606082840312156117de57600080fd5b6117e86060611fa6565b905060006117f684846114a6565b825250602061180784848301611302565b602083015250604082013567ffffffffffffffff81111561182757600080fd5b611833848285016114b2565b60408301525092915050565b60006110428251612043565b60006020828403121561185d57600080fd5b815167ffffffffffffffff81111561187457600080fd5b6118808482850161137c565b949350505050565b6000806040838503121561189b57600080fd5b60006118a785856114a6565b925050602083013567ffffffffffffffff8111156118c457600080fd5b6118d0858286016114b2565b9150509250929050565b6000602082840312156118ec57600080fd5b815167ffffffffffffffff81111561190357600080fd5b61188084828501611690565b6000806040838503121561192257600080fd5b825167ffffffffffffffff81111561193957600080fd5b61194585828601611690565b925050602083015167ffffffffffffffff81111561196257600080fd5b6118d085828601611690565b600080600080600060a0868803121561198657600080fd5b853567ffffffffffffffff81111561199d57600080fd5b6119a9888289016117cc565b95505060206119ba88828901611302565b945050604086013567ffffffffffffffff8111156119d757600080fd5b6119e3888289016114b2565b935050606086013567ffffffffffffffff811115611a0057600080fd5b611a0c88828901611436565b925050608086013567ffffffffffffffff811115611a2957600080fd5b611a358882890161131a565b9150509295509295909350565b60008060008060008060c08789031215611a5b57600080fd5b863567ffffffffffffffff811115611a7257600080fd5b611a7e89828a016117cc565b965050602087013567ffffffffffffffff811115611a9b57600080fd5b611aa789828a016113d9565b9550506040611ab889828a01611302565b945050606087013567ffffffffffffffff811115611ad557600080fd5b611ae189828a016114b2565b935050608087013567ffffffffffffffff811115611afe57600080fd5b611b0a89828a01611436565b92505060a087013567ffffffffffffffff811115611b2757600080fd5b611b3389828a0161131a565b9150509295509295509295565b611b4981612038565b82525050565b611b4981612043565b6000611b6382612034565b808452611b7781602086016020860161206b565b611b808161209b565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b600e81527f494e56414c49445f4f524947494e000000000000000000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611b40565b602081016104f18284611b4f565b602080825281016104f181611b8d565b602080825281016104f181611bbd565b602080825281016104f181611bed565b602080825281016104f181611c1d565b602080825281016104f181611c4d565b602080825281016104f181611c7d565b602080825281016104f181611cad565b602080825281016104f181611d03565b602080825281016104f181611d33565b602080825281016104f181611d63565b602080825281016104f181611db9565b602080825281016104f181611de9565b602080825281016104f181611e19565b60808101611f698287611b4f565b611f766020830186611b40565b8181036040830152611f888185611b58565b90508181036060830152611f9c8184611b58565b9695505050505050565b60405181810167ffffffffffffffff81118282101715611fc557600080fd5b604052919050565b600067ffffffffffffffff821115611fe457600080fd5b5060209081020190565b600067ffffffffffffffff82111561200557600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612046565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561208657818101518382015260200161206e565b83811115612095576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a7230582013be4e9e281ff59b6be3d1c4c7af6075c7d255edc60be429d25841f98f287b3e6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xD2DF0733 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD2DF0733 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE3B1AA86 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x90C3BC3F EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1888 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E7D JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F3B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x821 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F2B JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP6 MLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x56A SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x598 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B2 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x930 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x5CC JUMPI PUSH2 0x5CC DUP7 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x5DA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST ORIGIN PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EQ PUSH2 0x629 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634 DUP8 PUSH2 0xDE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP1 DUP3 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x663 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x677 PUSH2 0x1220 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EDB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F3 DUP3 PUSH2 0xDFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x718 DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x709 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x72A DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x64C SWAP2 POP POP JUMP JUMPDEST POP PUSH2 0x74D DUP3 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST DUP9 MLOAD SWAP1 SWAP3 POP PUSH1 0x0 JUMPDEST DUP1 DUP3 EQ PUSH2 0x814 JUMPI DUP10 MLOAD PUSH1 0x0 SWAP1 DUP12 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x76D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x79C JUMPI PUSH2 0x80C JUMP JUMPDEST PUSH1 0x0 DUP11 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x7AC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x7CE DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xED3 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E9B JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x755 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x88F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EEB JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x944 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF10 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x9D7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xA23 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xAAD JUMPI PUSH2 0xA30 PUSH2 0x1248 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xA46 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xA59 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xA78 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xA70 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB3E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xB8A JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBD6 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC22 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC6E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCBA JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xCEF JUMPI DUP3 MLOAD PUSH2 0xCD5 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xCE8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x184B JUMP JUMPDEST SWAP2 POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xDE2 JUMPI PUSH2 0xD41 PUSH2 0x1248 JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1248 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xD5F SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD72 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x190F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xD95 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8D JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDBA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xDD5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x1049 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x10F7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0xE5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0xE74 JUMPI PUSH2 0xE6D DUP6 DUP6 DUP4 PUSH2 0x1156 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEA1 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD MUL PUSH1 0x20 DUP5 ADD DUP2 DUP2 ADD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP1 MLOAD DUP1 DUP8 EQ ISZERO PUSH2 0xEFD JUMPI PUSH1 0x1 SWAP6 POP DUP3 SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD PUSH2 0xEE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F4B JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1042 PUSH2 0x1030 DUP3 PUSH2 0x121A JUMP JUMPDEST DUP5 PUSH2 0x103A DUP8 PUSH2 0x121A JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x1156 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD MLOAD DUP3 MLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD PUSH32 0x213C6F636F3EA94E701C0ADF9B2624AA45A6C694F9A292C094F9A81C24B5DF4C DUP2 MSTORE SWAP5 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP7 DUP2 ADD MLOAD DUP6 MLOAD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 DUP7 MLOAD PUSH32 0x2FBCDBAA76BC7589916958AE919DFBEF04D23F6BBF26DE6FF317B32C6CC01E05 DUP2 MSTORE SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 DUP3 ADD MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 SWAP1 KECCAK256 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1180 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x118D JUMPI PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x11C7 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x11BF JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x11A4 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x1210 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x11D6 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x132B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x133E PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x1FA6 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1366 DUP9 DUP3 PUSH2 0x14B2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1350 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x139B PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x13C3 DUP9 DUP3 PUSH2 0x1690 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13F8 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1420 DUP9 DUP3 PUSH2 0x1547 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x140A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1455 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 PUSH2 0x1490 DUP9 DUP3 PUSH2 0x14A6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x147D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x14C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14D1 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x14ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x205F JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1520 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x153C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x206B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1565 PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1573 DUP5 DUP5 PUSH2 0x1302 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1584 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1598 DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x15AC DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x15C0 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x15D4 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x15E8 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x15FC DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1611 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1627 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1655 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AE PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16BC DUP5 DUP5 PUSH2 0x130E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x16CD DUP5 DUP5 DUP4 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16E1 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16F5 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1709 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x171D DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1731 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1745 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x175A DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1770 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x179E DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E8 PUSH1 0x60 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17F6 DUP5 DUP5 PUSH2 0x14A6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1807 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1833 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x137C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x189B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A7 DUP6 DUP6 PUSH2 0x14A6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1945 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A9 DUP9 DUP3 DUP10 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x19BA DUP9 DUP3 DUP10 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E3 DUP9 DUP3 DUP10 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0C DUP9 DUP3 DUP10 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A35 DUP9 DUP3 DUP10 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A7E DUP10 DUP3 DUP11 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AA7 DUP10 DUP3 DUP11 ADD PUSH2 0x13D9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1AB8 DUP10 DUP3 DUP11 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AE1 DUP10 DUP3 DUP11 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0A DUP10 DUP3 DUP11 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B33 DUP10 DUP3 DUP11 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2038 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B63 DUP3 PUSH2 0x2034 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1B77 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1B80 DUP2 PUSH2 0x209B JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F4F524947494E000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B40 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B4F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1B8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BBD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C7D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1CAD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D03 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DE9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E19 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x1F69 DUP3 DUP8 PUSH2 0x1B4F JUMP JUMPDEST PUSH2 0x1F76 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B40 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1F88 DUP2 DUP6 PUSH2 0x1B58 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1F9C DUP2 DUP5 PUSH2 0x1B58 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2005 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2046 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2086 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x206E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 SGT 0xbe 0x4e SWAP15 0x28 0x1f CREATE2 SWAP12 PUSH12 0xE3D1C4C7AF6075C7D255EDC6 SIGNEXTEND 0xe4 0x29 0xd2 PC COINBASE 0xf9 DUP16 0x28 PUSH28 0x3E6C6578706572696D656E74616CF500370000000000000000000000 ", + "sourceMap": "837:227:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;837:227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:3;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1627:801:2;;;;;;;;;:::i;:::-;;2108:913:1;;;;;;;;;:::i;1323:33:10:-;;;:::i;:::-;;;;;;;;3713:2773:1;;;;;;;;;:::i;988:2549:3:-;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:3;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:3;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:3;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:3;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:3;;;;;;-1:-1:-1;2510:20:3;;-1:-1:-1;;;;;;2510:20:3;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:3;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:3;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:3;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:3;3499:31;;;;;;;;;;;988:2549;;;;;:::o;1627:801:2:-;2008:197;2053:11;2078:8;2100:20;2134:29;2177:18;2008:31;:197::i;:::-;2251:8;;2292:16;;2322:25;;;;2361:16;;;;;2251:170;;;;;:8;;;;;:27;;:170;;2292:16;;2322:25;;2391:20;;2251:170;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2251:170:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2251:170:2;;;;1627:801;;;;;:::o;2108:913:1:-;2511:30;2544:38;2565:11;:16;;;2544:20;:38::i;:::-;2511:71;;2669:1;2653:6;:13;:17;2649:366;;;2754:250;2808:11;2837:6;2861:8;2887:20;2925:29;2972:18;2754:36;:250::i;:::-;2108:913;;;;;;:::o;1323:33:10:-;;;;:::o;3713:2773:1:-;4182:9;:21;;;;4161:82;;;;;;;;;;;;;;4285:23;4311:31;4330:11;4311:18;:31::i;:::-;4445:16;;;4459:1;4445:16;;;;;;;;;4499:25;;4285:57;;-1:-1:-1;4445:16:1;4499:25;4534:1151;4554:21;;;4534:1151;;4635:44;4682:29;4712:1;4682:32;;;;;;;;;;;;;;;;;;4635:79;;4728:35;;:::i;:::-;-1:-1:-1;4766:266:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5220:15;5181:54;;5094:191;;;;;;;;;;;;;;5364:20;5387:36;5414:8;5387:26;:36::i;:::-;5364:59;;5437:29;5469:53;5486:12;5500:18;5519:1;5500:21;;;;;;;;;;;;;;;;;;5469:16;:53::i;:::-;5437:85;-1:-1:-1;5621:53:1;:23;5437:85;5621:53;:30;:53;:::i;:::-;5595:79;-1:-1:-1;;4577:3:1;;;;;-1:-1:-1;4534:1151:1;;-1:-1:-1;;4534:1151:1;;-1:-1:-1;5801:41:1;:23;5832:9;5801:41;:30;:41;:::i;:::-;5884:13;;5775:67;;-1:-1:-1;5861:20:1;5907:573;5927:17;;;5907:573;;6043:9;;6078:1;;6043:6;;6050:1;;6043:9;;;;;;;;;;;;;;:23;;;:37;;;6039:84;;;6100:8;;6039:84;6214:23;6240:6;6247:1;6240:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;6283:20:1;6306:49;:23;6240:29;6306:49;:32;:49;:::i;:::-;6283:72;;6394:15;6369:100;;;;;;;;;;;;;;;;5907:573;;;5946:3;;5907:573;;;;3713:2773;;;;;;;;;;:::o;8315:448:22:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:22;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:22;13631:2;13729:13;13723:20;;13292:490::o;6698:1760:1:-;6794:30;6840:15;6858:18;:4;6840:15;6858:18;:15;:18;:::i;:::-;6840:36;-1:-1:-1;6903:31:1;;;6915:19;6903:31;;:87;;-1:-1:-1;6950:40:1;;;6962:28;6950:40;6903:87;:142;;;-1:-1:-1;7006:39:1;;;7018:27;7006:39;6903:142;6886:1543;;;7106:27;;:::i;:::-;7179:11;;7165:26;;7179:4;;7176:1;;7165:26;:10;:26;:::i;:::-;7137:102;;;;;;;;;;;;;;7262:23;;;7283:1;7262:23;;;;;;;;;7105:134;;-1:-1:-1;7262:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7253:32;;7311:5;7299:6;7306:1;7299:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6886:1543:1;;;7350:38;;;7362:26;7350:38;;:101;;-1:-1:-1;7404:47:1;;;7416:35;7404:47;7350:101;:163;;;-1:-1:-1;7467:46:1;;;7479:34;7467:46;7350:163;:217;;;-1:-1:-1;7529:38:1;;;7541:26;7529:38;7350:217;:280;;;-1:-1:-1;7583:47:1;;;7595:35;7583:47;7350:280;:335;;;-1:-1:-1;7646:39:1;;;7658:27;7646:39;7350:335;:399;;;-1:-1:-1;7701:48:1;;;7713:36;7701:48;7350:399;7333:1096;;;7898:11;;7884:26;;7898:4;;7895:1;;7884:26;:10;:26;:::i;:::-;7856:104;;;;;;;;;;;;;;7845:115;;7333:1096;;;7981:33;;;7993:21;7981:33;7977:452;;;8075:31;;:::i;:::-;8108:32;;:::i;:::-;8186:11;;8172:26;;8186:4;;8183:1;;8172:26;:10;:26;:::i;:::-;8144:118;;;;;;;;;;;;;;8324:23;;;8345:1;8324:23;;;;;;;;;8074:188;;-1:-1:-1;8074:188:1;;-1:-1:-1;8324:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8315:32;;8373:9;8361:6;8368:1;8361:9;;;;;;;;;;;;;;;;;;:21;8396:9;;8408:10;;8396:6;;8403:1;;8396:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7977:452:1;-1:-1:-1;6698:1760:1;;;:::o;1602:406:11:-;1715:23;1916:53;1934:34;1956:11;1934:21;:34::i;:::-;1916:17;:53::i;2006:259:9:-;2126:20;2177:52;2195:33;2219:8;2195:23;:33::i;1089:2103:21:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:21;;-1:-1:-1;;;;;1089:2103:21;;;;:::o;3431:1034::-;3543:12;3686:2;3671:12;3665:19;3661:28;3799:2;3785:12;3781:21;3911:12;3891:18;3887:37;3985:18;3972:453;4011:16;4008:1;4005:23;3972:453;;;4130:1;4124:8;4226:12;4218:6;4215:24;4212:2;;;4316:1;4305:12;;4377:16;4372:21;;4212:2;-1:-1:-1;4042:2:21;4035:10;3972:453;;;-1:-1:-1;;;;3431:1034:21;;;;:::o;15595:687:22:-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:22;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:22;87:34:-1;135:17;;-1:-1;6890:20:22;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;2255:1419:11:-;2489:16;;;;;2530;;2580:25;;;;;3004:11;;2989:13;;;2979:37;;;;3088:9;;992:66;3111:26;;3237:15;;;3230:29;;;;3382:42;3363:62;;;3346:15;;;3339:87;;;;2469:17;3464:15;;3457:33;3631:3;3613:22;;;2255:1419::o;1856:924:10:-;1950:14;2007:18;2319:2;2313:9;2351:66;2336:82;;2468:1;2456:14;;2449:40;;;;2586:2;2574:15;;2567:35;;;;2738:2;2720:21;;;1856:924::o;2605:1613:9:-;2858:29;;;;;2916:17;;2969:24;;;;;2822:33;3043:38;;;;3537:27;;3506:29;;;3496:69;;;;3641:9;;1085:66;3664:26;;3758:15;;;3751:33;;;;3839:15;;;3832:40;3927:15;;;3920:49;4036:3;4024:16;;4017:55;4175:3;4157:22;;2605:1613;;;:::o;1808:4337:22:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:22;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:22;1808:4337;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;837:227:0:-;;;;;;;;;-1:-1:-1;837:227:0;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1283;;;;;;12561:3;12549:9;12540:7;12536:23;12532:33;12529:2;;;12578:1;12575;12568:12;12529:2;12613:31;;12664:18;12653:30;;12650:2;;;12696:1;12693;12686:12;12650:2;12716:87;12795:7;12786:6;12775:9;12771:22;12716:87;;;12706:97;;12592:217;12840:2;12858:53;12903:7;12894:6;12883:9;12879:22;12858:53;;;12848:63;;12819:98;12976:2;12965:9;12961:18;12948:32;13000:18;12992:6;12989:30;12986:2;;;13032:1;13029;13022:12;12986:2;13052:62;13106:7;13097:6;13086:9;13082:22;13052:62;;;13042:72;;12927:193;13179:2;13168:9;13164:18;13151:32;13203:18;13195:6;13192:30;13189:2;;;13235:1;13232;13225:12;13189:2;13255:78;13325:7;13316:6;13305:9;13301:22;13255:78;;;13245:88;;13130:209;13398:3;13387:9;13383:19;13370:33;13423:18;13415:6;13412:30;13409:2;;;13455:1;13452;13445:12;13409:2;13475:83;13550:7;13541:6;13530:9;13526:22;13475:83;;;13465:93;;13349:215;12523:1051;;;;;;;;;13581:1583;;;;;;;13912:3;13900:9;13891:7;13887:23;13883:33;13880:2;;;13929:1;13926;13919:12;13880:2;13964:31;;14015:18;14004:30;;14001:2;;;14047:1;14044;14037:12;14001:2;14067:87;14146:7;14137:6;14126:9;14122:22;14067:87;;;14057:97;;13943:217;14219:2;14208:9;14204:18;14191:32;14243:18;14235:6;14232:30;14229:2;;;14275:1;14272;14265:12;14229:2;14295:97;14384:7;14375:6;14364:9;14360:22;14295:97;;;14285:107;;14170:228;14429:2;14447:53;14492:7;14483:6;14472:9;14468:22;14447:53;;;14437:63;;14408:98;14565:2;14554:9;14550:18;14537:32;14589:18;14581:6;14578:30;14575:2;;;14621:1;14618;14611:12;14575:2;14641:62;14695:7;14686:6;14675:9;14671:22;14641:62;;;14631:72;;14516:193;14768:3;14757:9;14753:19;14740:33;14793:18;14785:6;14782:30;14779:2;;;14825:1;14822;14815:12;14779:2;14845:78;14915:7;14906:6;14895:9;14891:22;14845:78;;;14835:88;;14719:210;14988:3;14977:9;14973:19;14960:33;15013:18;15005:6;15002:30;14999:2;;;15045:1;15042;15035:12;14999:2;15065:83;15140:7;15131:6;15120:9;15116:22;15065:83;;;15055:93;;14939:215;13874:1290;;;;;;;;;15171:120;15254:31;15279:5;15254:31;;;15249:3;15242:44;15236:55;;;15298:120;15381:31;15406:5;15381:31;;15425:307;;15535:38;15567:5;15535:38;;;15590:6;15585:3;15578:19;15602:63;15658:6;15651:4;15646:3;15642:14;15635:4;15628:5;15624:16;15602:63;;;15697:29;15719:6;15697:29;;;15677:50;;;15690:4;15677:50;;15515:217;-1:-1;;;15515:217;16046:306;16211:2;16199:15;;16248:66;16243:2;16234:12;;16227:88;16343:2;16334:12;;16192:160;16361:306;16526:2;16514:15;;16563:66;16558:2;16549:12;;16542:88;16658:2;16649:12;;16507:160;16676:306;16841:2;16829:15;;16878:66;16873:2;16864:12;;16857:88;16973:2;16964:12;;16822:160;16991:306;17156:2;17144:15;;17193:66;17188:2;17179:12;;17172:88;17288:2;17279:12;;17137:160;17306:306;17471:2;17459:15;;17508:66;17503:2;17494:12;;17487:88;17603:2;17594:12;;17452:160;17621:306;17786:2;17774:15;;17823:66;17818:2;17809:12;;17802:88;17918:2;17909:12;;17767:160;17936:407;18101:2;18089:15;;18138:66;18133:2;18124:12;;18117:88;18239:66;18234:2;18225:12;;18218:88;18334:2;18325:12;;18082:261;18352:306;18517:2;18505:15;;18554:66;18549:2;18540:12;;18533:88;18649:2;18640:12;;18498:160;18667:306;18832:2;18820:15;;18869:66;18864:2;18855:12;;18848:88;18964:2;18955:12;;18813:160;18982:407;19147:2;19135:15;;19184:66;19179:2;19170:12;;19163:88;19285:66;19280:2;19271:12;;19264:88;19380:2;19371:12;;19128:261;19398:306;19563:2;19551:15;;19600:66;19595:2;19586:12;;19579:88;19695:2;19686:12;;19544:160;19713:306;19878:2;19866:15;;19915:66;19910:2;19901:12;;19894:88;20010:2;20001:12;;19859:160;20028:407;20193:2;20181:15;;20230:66;20225:2;20216:12;;20209:88;20331:66;20326:2;20317:12;;20310:88;20426:2;20417:12;;20174:261;20570:213;20688:2;20673:18;;20702:71;20677:9;20746:6;20702:71;;20790:213;20908:2;20893:18;;20922:71;20897:9;20966:6;20922:71;;21010:407;21201:2;21215:47;;;21186:18;;21276:131;21186:18;21276:131;;21424:407;21615:2;21629:47;;;21600:18;;21690:131;21600:18;21690:131;;21838:407;22029:2;22043:47;;;22014:18;;22104:131;22014:18;22104:131;;22252:407;22443:2;22457:47;;;22428:18;;22518:131;22428:18;22518:131;;22666:407;22857:2;22871:47;;;22842:18;;22932:131;22842:18;22932:131;;23080:407;23271:2;23285:47;;;23256:18;;23346:131;23256:18;23346:131;;23494:407;23685:2;23699:47;;;23670:18;;23760:131;23670:18;23760:131;;23908:407;24099:2;24113:47;;;24084:18;;24174:131;24084:18;24174:131;;24322:407;24513:2;24527:47;;;24498:18;;24588:131;24498:18;24588:131;;24736:407;24927:2;24941:47;;;24912:18;;25002:131;24912:18;25002:131;;25150:407;25341:2;25355:47;;;25326:18;;25416:131;25326:18;25416:131;;25564:407;25755:2;25769:47;;;25740:18;;25830:131;25740:18;25830:131;;25978:407;26169:2;26183:47;;;26154:18;;26244:131;26154:18;26244:131;;26392:707;26626:3;26611:19;;26641:71;26615:9;26685:6;26641:71;;;26723:72;26791:2;26780:9;26776:18;26767:6;26723:72;;;26843:9;26837:4;26833:20;26828:2;26817:9;26813:18;26806:48;26868:72;26935:4;26926:6;26868:72;;;26860:80;;26988:9;26982:4;26978:20;26973:2;26962:9;26958:18;26951:48;27013:76;27084:4;27075:6;27013:76;;;27005:84;26597:502;-1:-1;;;;;;26597:502;27106:256;27168:2;27162:9;27194:17;;;27269:18;27254:34;;27290:22;;;27251:62;27248:2;;;27326:1;27323;27316:12;27248:2;27342;27335:22;27146:216;;-1:-1;27146:216;27369:263;;27533:18;27525:6;27522:30;27519:2;;;27565:1;27562;27555:12;27519:2;-1:-1;27594:4;27582:17;;;27612:15;;27456:176;28468:254;;28607:18;28599:6;28596:30;28593:2;;;28639:1;28636;28629:12;28593:2;-1:-1;28712:4;28683;28660:17;;;;28679:9;28656:33;28702:15;;28530:192;28994:87;29064:12;;29048:33;29186:105;;29255:31;29280:5;29255:31;;29298:79;29367:5;29350:27;29384:128;29464:42;29453:54;;29436:76;29890:145;29971:6;29966:3;29961;29948:30;-1:-1;30027:1;30009:16;;30002:27;29941:94;30044:268;30109:1;30116:101;30130:6;30127:1;30124:13;30116:101;;;30197:11;;;30191:18;30178:11;;;30171:39;30152:2;30145:10;30116:101;;;30232:6;30229:1;30226:13;30223:2;;;30297:1;30288:6;30283:3;30279:16;30272:27;30223:2;30093:219;;;;;30320:97;30408:2;30388:14;30404:7;30384:28;;30368:49" + } + } + }, + "sources": { + "src/Coordinator.sol": { + "id": 0 + }, + "src/libs/LibConstants.sol": { + "id": 8 + }, + "src/interfaces/ITransactions.sol": { + "id": 7 + }, + "src/MixinSignatureValidator.sol": { + "id": 3 + }, + "@0x/contracts-utils/contracts/src/LibBytes.sol": { + "id": 22 + }, + "src/mixins/MSignatureValidator.sol": { + "id": 13 + }, + "src/interfaces/ISignatureValidator.sol": { + "id": 6 + }, + "src/MixinCoordinatorApprovalVerifier.sol": { + "id": 1 + }, + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { + "id": 19 + }, + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { + "id": 20 + }, + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { + "id": 18 + }, + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { + "id": 21 + }, + "src/libs/LibCoordinatorApproval.sol": { + "id": 9 + }, + "src/libs/LibEIP712Domain.sol": { + "id": 10 + }, + "src/libs/LibZeroExTransaction.sol": { + "id": 11 + }, + "src/mixins/MCoordinatorApprovalVerifier.sol": { + "id": 12 + }, + "src/interfaces/ICoordinatorApprovalVerifier.sol": { + "id": 4 + }, + "src/MixinCoordinatorCore.sol": { + "id": 2 + }, + "src/interfaces/ICoordinatorCore.sol": { + "id": 5 + } + }, + "sourceCodes": { + "src/Coordinator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibConstants.sol\";\nimport \"./MixinSignatureValidator.sol\";\nimport \"./MixinCoordinatorApprovalVerifier.sol\";\nimport \"./MixinCoordinatorCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract Coordinator is\n LibConstants,\n MixinSignatureValidator,\n MixinCoordinatorApprovalVerifier,\n MixinCoordinatorCore\n{\n constructor (address _exchange)\n public\n LibConstants(_exchange)\n {}\n}\n", + "src/libs/LibConstants.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ITransactions.sol\";\n\n\ncontract LibConstants {\n\n // solhint-disable-next-line var-name-mixedcase\n ITransactions internal EXCHANGE;\n\n constructor (address _exchange)\n public\n {\n EXCHANGE = ITransactions(_exchange);\n }\n}\n", + "src/interfaces/ITransactions.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\npragma solidity ^0.5.3;\n\n\ncontract ITransactions {\n\n /// @dev Executes an exchange method call in the context of signer.\n /// @param salt Arbitrary number to ensure uniqueness of transaction hash.\n /// @param signerAddress Address of transaction signer.\n /// @param data AbiV2 encoded calldata.\n /// @param signature Proof of signer transaction by signer.\n function executeTransaction(\n uint256 salt,\n address signerAddress,\n bytes calldata data,\n bytes calldata signature\n )\n external;\n}\n", + "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", + "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", + "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", + "src/MixinCoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibCoordinatorApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MCoordinatorApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinCoordinatorApprovalVerifier is\n LibExchangeSelectors,\n LibCoordinatorApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MCoordinatorApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidCoordinatorApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n txOrigin,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Verify that Ethereum tx signer is the same as the approved txOrigin\n require(\n tx.origin == txOrigin,\n \"INVALID_ORIGIN\"\n );\n\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i != signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n CoordinatorApproval memory approval = CoordinatorApproval({\n txOrigin: txOrigin,\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getCoordinatorApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i != ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n address approverAddress = orders[i].feeRecipientAddress;\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool success)\n {\n assembly {\n\n // Calculate byte length of array\n let arrayByteLen := mul(mload(addressArray), 32)\n // Calculate beginning of array contents\n let arrayContentsStart := add(addressArray, 32)\n // Calclulate end of array contents\n let arrayContentsEnd := add(arrayContentsStart, arrayByteLen)\n\n // Loop through array\n for {let i:= arrayContentsStart} lt(i, arrayContentsEnd) {i := add(i, 32)} {\n\n // Load array element\n let arrayElement := mload(i)\n\n // Return true if array element equals target\n if eq(target, arrayElement) {\n // Set success to true\n success := 1\n // Break loop\n i := arrayContentsEnd\n }\n }\n }\n return success;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool success, uint256 index)\n {\n assembly {\n\n // Calculate byte length of array\n let arrayByteLen := mul(mload(addressArray), 32)\n // Calculate beginning of array contents\n let arrayContentsStart := add(addressArray, 32)\n // Calclulate end of array contents\n let arrayContentsEnd := add(arrayContentsStart, arrayByteLen)\n\n // Loop through array\n for {let i:= arrayContentsStart} lt(i, arrayContentsEnd) {i := add(i, 32)} {\n\n // Load array element\n let arrayElement := mload(i)\n\n // Return true if array element equals target\n if eq(target, arrayElement) {\n // Set success and index\n success := 1\n index := div(i, 32)\n // Break loop\n i := arrayContentsEnd\n }\n }\n }\n return (success, index);\n }\n}\n", + "src/libs/LibCoordinatorApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibCoordinatorApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 Coordinator approval message\n // keccak256(abi.encodePacked(\n // \"CoordinatorApproval(\",\n // \"address txOrigin,\",\n // \"bytes32 transactionHash,\",\n // \"bytes transactionSignature,\",\n // \"uint256 approvalExpirationTimeSeconds\",\n // \")\"\n // ));\n bytes32 constant internal EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH = 0x2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e05;\n\n struct CoordinatorApproval {\n address txOrigin; // Required signer of Ethereum transaction that is submitting approval.\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage using the domain separator of this contract.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with the domain separator of this contract.\n function getCoordinatorApprovalHash(CoordinatorApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashCoordinatorApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage with no domain separator.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with no domain separator.\n function hashCoordinatorApproval(CoordinatorApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH;\n bytes memory transactionSignature = approval.transactionSignature;\n address txOrigin = approval.txOrigin;\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Compute hash of transaction signature\n let transactionSignatureHash := keccak256(add(transactionSignature, 32), mload(transactionSignature))\n \n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), txOrigin) // txOrigin\n mstore(add(memPtr, 64), transactionHash) // transactionHash\n mstore(add(memPtr, 96), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 128), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 160)\n }\n return result;\n }\n}\n", + "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n // keccak256(abi.encodePacked(\n // \"ZeroExTransaction(\",\n // \"uint256 salt,\",\n // \"address signerAddress,\",\n // \"bytes data\",\n // \")\"\n // ));\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = 0x213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c;\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes memory data = transaction.data;\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Compute hash of data\n let dataHash := keccak256(add(data, 32), mload(data))\n \n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/mixins/MCoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ICoordinatorApprovalVerifier.sol\";\n\n\ncontract MCoordinatorApprovalVerifier is\n ICoordinatorApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", + "src/interfaces/ICoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ICoordinatorApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidCoordinatorApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n", + "src/MixinCoordinatorCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./libs/LibConstants.sol\";\nimport \"./mixins/MCoordinatorApprovalVerifier.sol\";\nimport \"./interfaces/ICoordinatorCore.sol\";\n\n\ncontract MixinCoordinatorCore is\n LibConstants,\n MCoordinatorApprovalVerifier,\n ICoordinatorCore\n{\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n {\n // Validate that the 0x transaction has been approves by each feeRecipient\n assertValidCoordinatorApprovals(\n transaction,\n txOrigin,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n\n // Execute the transaction\n EXCHANGE.executeTransaction(\n transaction.salt,\n transaction.signerAddress,\n transaction.data,\n transactionSignature\n );\n }\n}\n", + "src/interfaces/ICoordinatorCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ICoordinatorCore {\n\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public;\n}\n" + }, + "sourceTreeHashHex": "0xcb9dc4e3588f7417807cc8b901a358efbad1d37ae61794e3031c8f00ac09d41e", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "evmVersion": "byzantium", + "remappings": [ + "@0x/contracts-utils=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} \ No newline at end of file diff --git a/packages/contract-artifacts/artifacts/CoordinatorRegistry.json b/packages/contract-artifacts/artifacts/CoordinatorRegistry.json new file mode 100644 index 0000000000..837e3b7046 --- /dev/null +++ b/packages/contract-artifacts/artifacts/CoordinatorRegistry.json @@ -0,0 +1,122 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "CoordinatorRegistry", + "compilerOutput": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "name": "setCoordinatorEndpoint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "coordinatorOperator", + "type": "address" + } + ], + "name": "getCoordinatorEndpoint", + "outputs": [ + { + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "coordinatorOperator", + "type": "address" + }, + { + "indexed": false, + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "name": "CoordinatorEndpointSet", + "type": "event" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b506104b5806100206000396000f3fe608060405234801561001057600080fd5b5060043610610052577c010000000000000000000000000000000000000000000000000000000060003504635b2388be81146100575780636c90fedb1461006c575b600080fd5b61006a6100653660046102ff565b610095565b005b61007f61007a3660046102d9565b6100f0565b60405161008c91906103d8565b60405180910390f35b3360008181526020819052604090206100af9084846101c4565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e8184846040516100e3939291906103ae565b60405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156101b85780601f1061018d576101008083540402835291602001916101b8565b820191906000526020600020905b81548152906001019060200180831161019b57829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610223578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610250565b82800160010185558215610250579182015b82811115610250578235825591602001919060010190610235565b5061025c929150610260565b5090565b61027a91905b8082111561025c5760008155600101610266565b90565b600061028982356103ed565b9392505050565b600080601f830184136102a257600080fd5b50813567ffffffffffffffff8111156102ba57600080fd5b6020830191508360018202830111156102d257600080fd5b9250929050565b6000602082840312156102eb57600080fd5b60006102f7848461027d565b949350505050565b6000806020838503121561031257600080fd5b823567ffffffffffffffff81111561032957600080fd5b61033585828601610290565b92509250509250929050565b61034a816103ed565b82525050565b6000828452602084019350610366838584610417565b61036f83610453565b9093019392505050565b6000610384826103e9565b808452610398816020860160208601610423565b6103a181610453565b9093016020019392505050565b604081016103bc8286610341565b81810360208301526103cf818486610350565b95945050505050565b602080825281016102898184610379565b5190565b60006103f8826103fe565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561043e578181015183820152602001610426565b8381111561044d576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820d8fc8bc6ec7167e671f9f87937212d93c49d5fbe171bbdfa06c846e5ac76151b6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B5 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x52 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x5B2388BE DUP2 EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x6C90FEDB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A PUSH2 0x65 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FF JUMP JUMPDEST PUSH2 0x95 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAF SWAP1 DUP5 DUP5 PUSH2 0x1C4 JUMP JUMPDEST POP PUSH32 0xD060052768902F3EECB84B8EAE9D3A2608A1A9E60811A33968B46B8D552F266E DUP2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP7 AND ISZERO MUL ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x223 JUMPI DUP3 DUP1 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x250 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x250 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x250 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x235 JUMP JUMPDEST POP PUSH2 0x25C SWAP3 SWAP2 POP PUSH2 0x260 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x27A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x289 DUP3 CALLDATALOAD PUSH2 0x3ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP4 ADD DUP5 SGT PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F7 DUP5 DUP5 PUSH2 0x27D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x34A DUP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x366 DUP4 DUP6 DUP5 PUSH2 0x417 JUMP JUMPDEST PUSH2 0x36F DUP4 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x384 DUP3 PUSH2 0x3E9 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x398 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x423 JUMP JUMPDEST PUSH2 0x3A1 DUP2 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3BC DUP3 DUP7 PUSH2 0x341 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3CF DUP2 DUP5 DUP7 PUSH2 0x350 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x289 DUP2 DUP5 PUSH2 0x379 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8 DUP3 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x43E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xd8 0xfc DUP12 0xc6 0xec PUSH18 0x67E671F9F87937212D93C49D5FBE171BBDFA MOD 0xc8 0x46 0xe5 0xac PUSH23 0x151B6C6578706572696D656E74616CF500370000000000 ", + "sourceMap": "720:148:14:-;;;791:75;8:9:-1;5:2;;;30:1;27;20:12;5:2;791:75:14;720:148;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610052577c010000000000000000000000000000000000000000000000000000000060003504635b2388be81146100575780636c90fedb1461006c575b600080fd5b61006a6100653660046102ff565b610095565b005b61007f61007a3660046102d9565b6100f0565b60405161008c91906103d8565b60405180910390f35b3360008181526020819052604090206100af9084846101c4565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e8184846040516100e3939291906103ae565b60405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156101b85780601f1061018d576101008083540402835291602001916101b8565b820191906000526020600020905b81548152906001019060200180831161019b57829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610223578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610250565b82800160010185558215610250579182015b82811115610250578235825591602001919060010190610235565b5061025c929150610260565b5090565b61027a91905b8082111561025c5760008155600101610266565b90565b600061028982356103ed565b9392505050565b600080601f830184136102a257600080fd5b50813567ffffffffffffffff8111156102ba57600080fd5b6020830191508360018202830111156102d257600080fd5b9250929050565b6000602082840312156102eb57600080fd5b60006102f7848461027d565b949350505050565b6000806020838503121561031257600080fd5b823567ffffffffffffffff81111561032957600080fd5b61033585828601610290565b92509250509250929050565b61034a816103ed565b82525050565b6000828452602084019350610366838584610417565b61036f83610453565b9093019392505050565b6000610384826103e9565b808452610398816020860160208601610423565b6103a181610453565b9093016020019392505050565b604081016103bc8286610341565b81810360208301526103cf818486610350565b95945050505050565b602080825281016102898184610379565b5190565b60006103f8826103fe565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561043e578181015183820152602001610426565b8381111561044d576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820d8fc8bc6ec7167e671f9f87937212d93c49d5fbe171bbdfa06c846e5ac76151b6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x52 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x5B2388BE DUP2 EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x6C90FEDB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A PUSH2 0x65 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FF JUMP JUMPDEST PUSH2 0x95 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAF SWAP1 DUP5 DUP5 PUSH2 0x1C4 JUMP JUMPDEST POP PUSH32 0xD060052768902F3EECB84B8EAE9D3A2608A1A9E60811A33968B46B8D552F266E DUP2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP7 AND ISZERO MUL ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x223 JUMPI DUP3 DUP1 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x250 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x250 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x250 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x235 JUMP JUMPDEST POP PUSH2 0x25C SWAP3 SWAP2 POP PUSH2 0x260 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x27A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x289 DUP3 CALLDATALOAD PUSH2 0x3ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP4 ADD DUP5 SGT PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F7 DUP5 DUP5 PUSH2 0x27D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x34A DUP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x366 DUP4 DUP6 DUP5 PUSH2 0x417 JUMP JUMPDEST PUSH2 0x36F DUP4 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x384 DUP3 PUSH2 0x3E9 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x398 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x423 JUMP JUMPDEST PUSH2 0x3A1 DUP2 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3BC DUP3 DUP7 PUSH2 0x341 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3CF DUP2 DUP5 DUP7 PUSH2 0x350 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x289 DUP2 DUP5 PUSH2 0x379 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8 DUP3 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x43E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xd8 0xfc DUP12 0xc6 0xec PUSH18 0x67E671F9F87937212D93C49D5FBE171BBDFA MOD 0xc8 0x46 0xe5 0xac PUSH23 0x151B6C6578706572696D656E74616CF500370000000000 ", + "sourceMap": "720:148:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;720:148:14;;;;;;;;;;;;;;;;;;;;;;;;1086:287:15;;;;;;;;;:::i;:::-;;1502:212;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1086:287;1204:10;1174:27;1224:41;;;;;;;;;;:63;;1268:19;;1224:63;:::i;:::-;;1302:64;1325:19;1346;;1302:64;;;;;;;;;;;;;;;;;1086:287;;;:::o;1502:212::-;1666:41;;;:20;:41;;;;;;;;;;;;1659:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:33;;1659:48;;;1666:41;1659:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:212;;;:::o;720:148:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;720:148:14;;;-1:-1:-1;720:148:14;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;145:336;;;253:4;241:17;;237:27;-1:-1;227:2;;278:1;275;268:12;227:2;-1:-1;298:20;;338:18;327:30;;324:2;;;370:1;367;360:12;324:2;404:4;396:6;392:17;380:29;;454:3;447;439:6;435:16;425:8;421:31;418:40;415:2;;;471:1;468;461:12;415:2;220:261;;;;;;489:241;;593:2;581:9;572:7;568:23;564:32;561:2;;;609:1;606;599:12;561:2;644:1;661:53;706:7;686:9;661:53;;;651:63;555:175;-1:-1;;;;555:175;737:367;;;861:2;849:9;840:7;836:23;832:32;829:2;;;877:1;874;867:12;829:2;912:31;;963:18;952:30;;949:2;;;995:1;992;985:12;949:2;1023:65;1080:7;1071:6;1060:9;1056:22;1023:65;;;1005:83;;;;891:203;823:281;;;;;;1111:120;1194:31;1219:5;1194:31;;;1189:3;1182:44;1176:55;;;1261:273;;1381:6;1376:3;1369:19;1405:4;1400:3;1396:14;1389:21;;1435:43;1471:6;1466:3;1459:5;1435:43;;;1499:29;1521:6;1499:29;;;1490:39;;;;1363:171;-1:-1;;;1363:171;1541:310;;1653:39;1686:5;1653:39;;;1709:6;1704:3;1697:19;1721:63;1777:6;1770:4;1765:3;1761:14;1754:4;1747:5;1743:16;1721:63;;;1816:29;1838:6;1816:29;;;1796:50;;;1809:4;1796:50;;1633:218;-1:-1;;;1633:218;1858:432;2034:2;2019:18;;2048:71;2023:9;2092:6;2048:71;;;2167:9;2161:4;2157:20;2152:2;2141:9;2137:18;2130:48;2192:88;2275:4;2266:6;2258;2192:88;;;2184:96;2005:285;-1:-1;;;;;2005:285;2297:301;2435:2;2449:47;;;2420:18;;2510:78;2420:18;2574:6;2510:78;;2605:92;2680:12;;2664:33;2704:105;;2773:31;2798:5;2773:31;;;2762:42;2756:53;-1:-1;;2756:53;2816:128;2896:42;2885:54;;2868:76;3064:145;3145:6;3140:3;3135;3122:30;-1:-1;3201:1;3183:16;;3176:27;3115:94;3218:268;3283:1;3290:101;3304:6;3301:1;3298:13;3290:101;;;3371:11;;;3365:18;3352:11;;;3345:39;3326:2;3319:10;3290:101;;;3406:6;3403:1;3400:13;3397:2;;;3471:1;3462:6;3457:3;3453:16;3446:27;3397:2;3267:219;;;;;3494:97;3582:2;3562:14;3578:7;3558:28;;3542:49" + } + } + }, + "sources": { + "src/registry/CoordinatorRegistry.sol": { + "id": 14 + }, + "src/registry/MixinCoordinatorRegistryCore.sol": { + "id": 15 + }, + "src/registry/interfaces/ICoordinatorRegistryCore.sol": { + "id": 16 + } + }, + "sourceCodes": { + "src/registry/CoordinatorRegistry.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\nimport \"./MixinCoordinatorRegistryCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract CoordinatorRegistry is\n MixinCoordinatorRegistryCore\n{\n constructor ()\n public\n MixinCoordinatorRegistryCore()\n {}\n}\n", + "src/registry/MixinCoordinatorRegistryCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\nimport \"./interfaces/ICoordinatorRegistryCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract MixinCoordinatorRegistryCore is\n ICoordinatorRegistryCore\n{\n // mapping from `coordinatorOperator` -> `coordinatorEndpoint`\n mapping (address => string) internal coordinatorEndpoints;\n\n /// @dev Called by a Coordinator operator to set the endpoint of their Coordinator.\n /// @param coordinatorEndpoint endpoint of the Coordinator.\n function setCoordinatorEndpoint(string calldata coordinatorEndpoint) external {\n address coordinatorOperator = msg.sender;\n coordinatorEndpoints[coordinatorOperator] = coordinatorEndpoint;\n emit CoordinatorEndpointSet(coordinatorOperator, coordinatorEndpoint);\n }\n\n /// @dev Gets the endpoint for a Coordinator.\n /// @param coordinatorOperator operator of the Coordinator endpoint.\n function getCoordinatorEndpoint(address coordinatorOperator)\n external\n view\n returns (string memory coordinatorEndpoint)\n {\n return coordinatorEndpoints[coordinatorOperator];\n }\n}\n", + "src/registry/interfaces/ICoordinatorRegistryCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\n\n// solhint-disable no-empty-blocks\ncontract ICoordinatorRegistryCore\n{\n /// @dev Emitted when a Coordinator endpoint is set.\n event CoordinatorEndpointSet(\n address coordinatorOperator,\n string coordinatorEndpoint\n );\n\n /// @dev Called by a Coordinator operator to set the endpoint of their Coordinator.\n /// @param coordinatorEndpoint endpoint of the Coordinator.\n function setCoordinatorEndpoint(string calldata coordinatorEndpoint) external;\n\n /// @dev Gets the endpoint for a Coordinator.\n /// @param coordinatorOperator operator of the Coordinator endpoint.\n function getCoordinatorEndpoint(address coordinatorOperator)\n external\n view\n returns (string memory coordinatorEndpoint);\n}\n" + }, + "sourceTreeHashHex": "0x73b5157724c2624755d003dcb560ff5732c8ae78d44b1b99ec064e8b909f8f8c", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "evmVersion": "byzantium", + "remappings": [ + "@0x/contracts-utils=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} \ No newline at end of file diff --git a/packages/contract-artifacts/src/index.ts b/packages/contract-artifacts/src/index.ts index 1cbda9518b..6b751222c1 100644 --- a/packages/contract-artifacts/src/index.ts +++ b/packages/contract-artifacts/src/index.ts @@ -1,4 +1,6 @@ import * as AssetProxyOwner from '../artifacts/AssetProxyOwner.json'; +import * as Coordinator from '../artifacts/Coordinator.json'; +import * as CoordinatorRegistry from '../artifacts/CoordinatorRegistry.json'; import * as DummyERC20Token from '../artifacts/DummyERC20Token.json'; import * as DummyERC721Token from '../artifacts/DummyERC721Token.json'; import * as DutchAuction from '../artifacts/DutchAuction.json'; @@ -32,4 +34,6 @@ export { OrderValidator, WETH9, ZRXToken, + Coordinator, + CoordinatorRegistry, }; diff --git a/packages/contract-artifacts/tsconfig.json b/packages/contract-artifacts/tsconfig.json index 1aef41bb8f..022463e771 100644 --- a/packages/contract-artifacts/tsconfig.json +++ b/packages/contract-artifacts/tsconfig.json @@ -22,6 +22,8 @@ "./artifacts/MultiAssetProxy.json", "./artifacts/OrderValidator.json", "./artifacts/WETH9.json", - "./artifacts/ZRXToken.json" + "./artifacts/ZRXToken.json", + "./artifacts/CoordinatorRegistry.json", + "./artifacts/Coordinator.json" ] } From 230ebffd0ecd1d862054df570771e6b0e09e40d3 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 11 Mar 2019 14:38:35 +0100 Subject: [PATCH 09/95] Generate Coordinator contract wrappers and add to abi-gen-wrappers package --- packages/abi-gen-wrappers/package.json | 2 +- .../src/generated-wrappers/coordinator.ts | 315 ++++++++++++++++++ .../coordinator_registry.ts | 182 ++++++++++ packages/abi-gen-wrappers/src/index.ts | 2 + 4 files changed, 500 insertions(+), 1 deletion(-) create mode 100644 packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts create mode 100644 packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts diff --git a/packages/abi-gen-wrappers/package.json b/packages/abi-gen-wrappers/package.json index 7567ff13b1..8fca93f7f8 100644 --- a/packages/abi-gen-wrappers/package.json +++ b/packages/abi-gen-wrappers/package.json @@ -18,7 +18,7 @@ "generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../../node_modules/@0x/abi-gen-templates/contract.handlebars --partials '../../node_modules/@0x/abi-gen-templates/partials/**/*.handlebars' --output src/generated-wrappers --backend ethers" }, "config": { - "abis": "../contract-artifacts/artifacts/@(AssetProxyOwner|DutchAuction|DummyERC20Token|DummyERC721Token|ERC20Proxy|ERC20Token|ERC721Proxy|ERC721Token|Exchange|Forwarder|IValidator|IWallet|MultiAssetProxy|OrderValidator|WETH9|ZRXToken).json" + "abis": "../contract-artifacts/artifacts/@(AssetProxyOwner|DutchAuction|DummyERC20Token|DummyERC721Token|ERC20Proxy|ERC20Token|ERC721Proxy|ERC721Token|Exchange|Forwarder|IValidator|IWallet|MultiAssetProxy|OrderValidator|WETH9|ZRXToken|Coordinator|CoordinatorRegistry).json" }, "repository": { "type": "git", diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts new file mode 100644 index 0000000000..c102596d12 --- /dev/null +++ b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts @@ -0,0 +1,315 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name +// tslint:disable:no-unused-variable +// tslint:disable:no-unbound-method +import { BaseContract } from '@0x/base-contract'; +import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; +import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import * as ethers from 'ethers'; +import * as _ from 'lodash'; +// tslint:enable:no-unused-variable + + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class CoordinatorContract extends BaseContract { + public getSignerAddress = { + async callAsync( + hash: string, + signature: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, + signature + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('getSignerAddress(bytes32,bytes)'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public executeTransaction = { + async sendTransactionAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + txOrigin: string, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + txData: Partial = {}, + ): Promise { + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.executeTransaction.estimateGasAsync.bind( + self, + transaction, + txOrigin, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + txOrigin: string, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + txData: Partial = {}, + ): Promise { + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + txOrigin: string, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + ): string { + const self = this as any as CoordinatorContract; + const abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + return abiEncodedTransactionData; + }, + async callAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + txOrigin: string, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('executeTransaction((uint256,address,bytes),address,bytes,uint256[],bytes[])'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public assertValidCoordinatorApprovals = { + async callAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + txOrigin: string, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('assertValidCoordinatorApprovals((uint256,address,bytes),address,bytes,uint256[],bytes[])', [transaction, + txOrigin, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('assertValidCoordinatorApprovals((uint256,address,bytes),address,bytes,uint256[],bytes[])'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public EIP712_DOMAIN_HASH = { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public assertValidTransactionOrdersApproval = { + async callAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>, + txOrigin: string, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes,uint256[],bytes[])', [transaction, + orders, + txOrigin, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,bytes,uint256[],bytes[])'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + supportedProvider: SupportedProvider, + txDefaults: Partial, + _exchange: string, + ): Promise { + if (_.isUndefined(artifact.compilerOutput)) { + throw new Error('Compiler output not found in the artifact file'); + } + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return CoordinatorContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange +); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + supportedProvider: SupportedProvider, + txDefaults: Partial, + _exchange: string, + ): Promise { + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [_exchange +] = BaseContract._formatABIDataItemList( + constructorAbi.inputs, + [_exchange +], + BaseContract._bigNumberToString, + ); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, [_exchange +]); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + {data: txData}, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`Coordinator successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new CoordinatorContract(abi, txReceipt.contractAddress as string, provider, txDefaults); + contractInstance.constructorArgs = [_exchange +]; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { + super('Coordinator', abi, address, supportedProvider, txDefaults); + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts new file mode 100644 index 0000000000..461849d718 --- /dev/null +++ b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator_registry.ts @@ -0,0 +1,182 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name +// tslint:disable:no-unused-variable +// tslint:disable:no-unbound-method +import { BaseContract } from '@0x/base-contract'; +import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; +import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import * as ethers from 'ethers'; +import * as _ from 'lodash'; +// tslint:enable:no-unused-variable + +export type CoordinatorRegistryEventArgs = + | CoordinatorRegistryCoordinatorEndpointSetEventArgs; + +export enum CoordinatorRegistryEvents { + CoordinatorEndpointSet = 'CoordinatorEndpointSet', +} + +export interface CoordinatorRegistryCoordinatorEndpointSetEventArgs extends DecodedLogArgs { + coordinatorOperator: string; + coordinatorEndpoint: string; +} + + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class CoordinatorRegistryContract extends BaseContract { + public setCoordinatorEndpoint = { + async sendTransactionAsync( + coordinatorEndpoint: string, + txData: Partial = {}, + ): Promise { + const self = this as any as CoordinatorRegistryContract; + const encodedData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.setCoordinatorEndpoint.estimateGasAsync.bind( + self, + coordinatorEndpoint + ), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync( + coordinatorEndpoint: string, + txData: Partial = {}, + ): Promise { + const self = this as any as CoordinatorRegistryContract; + const encodedData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData( + coordinatorEndpoint: string, + ): string { + const self = this as any as CoordinatorRegistryContract; + const abiEncodedTransactionData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint + ]); + return abiEncodedTransactionData; + }, + async callAsync( + coordinatorEndpoint: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as CoordinatorRegistryContract; + const encodedData = self._strictEncodeArguments('setCoordinatorEndpoint(string)', [coordinatorEndpoint + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('setCoordinatorEndpoint(string)'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public getCoordinatorEndpoint = { + async callAsync( + coordinatorOperator: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as CoordinatorRegistryContract; + const encodedData = self._strictEncodeArguments('getCoordinatorEndpoint(address)', [coordinatorOperator + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('getCoordinatorEndpoint(address)'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + if (_.isUndefined(artifact.compilerOutput)) { + throw new Error('Compiler output not found in the artifact file'); + } + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return CoordinatorRegistryContract.deployAsync(bytecode, abi, provider, txDefaults, ); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [] = BaseContract._formatABIDataItemList( + constructorAbi.inputs, + [], + BaseContract._bigNumberToString, + ); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, []); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + {data: txData}, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`CoordinatorRegistry successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new CoordinatorRegistryContract(abi, txReceipt.contractAddress as string, provider, txDefaults); + contractInstance.constructorArgs = []; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { + super('CoordinatorRegistry', abi, address, supportedProvider, txDefaults); + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method diff --git a/packages/abi-gen-wrappers/src/index.ts b/packages/abi-gen-wrappers/src/index.ts index 1a81c01875..54a41c37c7 100644 --- a/packages/abi-gen-wrappers/src/index.ts +++ b/packages/abi-gen-wrappers/src/index.ts @@ -14,3 +14,5 @@ export * from './generated-wrappers/multi_asset_proxy'; export * from './generated-wrappers/order_validator'; export * from './generated-wrappers/weth9'; export * from './generated-wrappers/zrx_token'; +export * from './generated-wrappers/coordinator'; +export * from './generated-wrappers/coordinator_registry'; From d356e9e65fdca8630c8465393d7d7617b39575e3 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 11 Mar 2019 14:38:51 +0100 Subject: [PATCH 10/95] Add deploying Coordinator contracts to migration script --- packages/migrations/src/migration.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/migrations/src/migration.ts b/packages/migrations/src/migration.ts index 8c42e6d6ff..54b76997a8 100644 --- a/packages/migrations/src/migration.ts +++ b/packages/migrations/src/migration.ts @@ -183,6 +183,21 @@ export async function runMigrationsAsync( await zrxToken.transfer.sendTransactionAsync(forwarder.address, zrxForwarderAmount, txDefaults), ); + // CoordinatorRegistry + const coordinatorRegistry = await wrappers.CoordinatorRegistryContract.deployFrom0xArtifactAsync( + artifacts.CoordinatorRegistry, + provider, + txDefaults, + ); + + // Coordinator + const coordinator = await wrappers.CoordinatorContract.deployFrom0xArtifactAsync( + artifacts.Coordinator, + provider, + txDefaults, + exchange.address, + ); + const contractAddresses = { erc20Proxy: erc20Proxy.address, erc721Proxy: erc721Proxy.address, @@ -193,6 +208,8 @@ export async function runMigrationsAsync( forwarder: forwarder.address, orderValidator: orderValidator.address, dutchAuction: dutchAuction.address, + coordinatorRegistry: coordinatorRegistry.address, + coordinator: coordinator.address, }; return contractAddresses; From 9366fa3b45b51e2ffaf0d0fcf9c0eeb2e107e84c Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 11 Mar 2019 15:29:26 +0100 Subject: [PATCH 11/95] Add CHANGELOG entries --- packages/abi-gen-wrappers/CHANGELOG.json | 8 ++++++++ packages/contract-artifacts/CHANGELOG.json | 9 +++++++++ packages/migrations/CHANGELOG.json | 8 ++++++++ 3 files changed, 25 insertions(+) diff --git a/packages/abi-gen-wrappers/CHANGELOG.json b/packages/abi-gen-wrappers/CHANGELOG.json index 39fb9974f9..c95588d7fe 100644 --- a/packages/abi-gen-wrappers/CHANGELOG.json +++ b/packages/abi-gen-wrappers/CHANGELOG.json @@ -1,4 +1,12 @@ [ + { + "version": "4.1.0", + "changes": [ + { + "note": "Add Coordinator and CoordinatorRegistry contract wrappers" + } + ] + }, { "timestamp": 1551479279, "version": "4.0.2", diff --git a/packages/contract-artifacts/CHANGELOG.json b/packages/contract-artifacts/CHANGELOG.json index c488fa5c58..20dc9ef372 100644 --- a/packages/contract-artifacts/CHANGELOG.json +++ b/packages/contract-artifacts/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "1.4.0", + "changes": [ + { + "note": "Added artifact for `Coordinaotr` and `CoordinatorRegistry` contracts", + "pr": 1503 + } + ] + }, { "version": "1.3.0", "changes": [ diff --git a/packages/migrations/CHANGELOG.json b/packages/migrations/CHANGELOG.json index c8a03e0d0a..93c30575a9 100644 --- a/packages/migrations/CHANGELOG.json +++ b/packages/migrations/CHANGELOG.json @@ -1,4 +1,12 @@ [ + { + "version": "4.1.0", + "changes": [ + { + "note": "Add deployment of `Coordinator` and `CoordinatorRegistry` contracts to migration script" + } + ] + }, { "timestamp": 1551479279, "version": "4.0.3", From 1693506f803b04ec80c75fa1d4b47e5723b607a0 Mon Sep 17 00:00:00 2001 From: askeluv Date: Wed, 13 Mar 2019 11:47:42 +0800 Subject: [PATCH 12/95] name -> full_name + fixed error message for missing access token --- .../pipeline/migrations/1552016339539-CreateGithubRepo.ts | 2 +- .../migrations/1552024155243-CreateGithubPullRequest.ts | 2 +- .../pipeline/migrations/1552044685566-CreateGithubFork.ts | 2 +- packages/pipeline/src/data_sources/github/index.ts | 4 ++-- packages/pipeline/src/entities/github_fork.ts | 4 ++-- packages/pipeline/src/entities/github_pull_request.ts | 4 ++-- packages/pipeline/src/entities/github_repo.ts | 4 ++-- packages/pipeline/src/parsers/github/forks.ts | 2 +- packages/pipeline/src/parsers/github/pulls.ts | 2 +- packages/pipeline/src/parsers/github/repo.ts | 2 +- packages/pipeline/src/scripts/pull_github.ts | 2 +- packages/pipeline/test/entities/github_test.ts | 6 +++--- packages/pipeline/test/fixtures/github/api_v3_forks.ts | 2 +- packages/pipeline/test/fixtures/github/api_v3_pulls.ts | 2 +- packages/pipeline/test/fixtures/github/api_v3_repo.ts | 2 +- 15 files changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts b/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts index 0babf1d19e..a512c3c782 100644 --- a/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts +++ b/packages/pipeline/migrations/1552016339539-CreateGithubRepo.ts @@ -4,7 +4,7 @@ const table = new Table({ name: 'raw.github_repo', columns: [ { name: 'observed_timestamp', type: 'numeric', isPrimary: true }, - { name: 'name', type: 'varchar', isPrimary: true }, + { name: 'full_name', type: 'varchar', isPrimary: true }, { name: 'created_at', type: 'numeric', isNullable: false }, { name: 'updated_at', type: 'numeric', isNullable: false }, diff --git a/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts b/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts index d0e8ef6908..82ef52a0f1 100644 --- a/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts +++ b/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts @@ -4,7 +4,7 @@ const table = new Table({ name: 'raw.github_pull_request', columns: [ { name: 'observed_timestamp', type: 'numeric', isPrimary: true }, - { name: 'repo_name', type: 'varchar', isPrimary: true }, + { name: 'repo_full_name', type: 'varchar', isPrimary: true }, { name: 'pull_request_number', type: 'numeric', isPrimary: true }, { name: 'created_at', type: 'numeric', isNullable: false }, diff --git a/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts b/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts index 652bd09003..ecad675811 100644 --- a/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts +++ b/packages/pipeline/migrations/1552044685566-CreateGithubFork.ts @@ -4,7 +4,7 @@ const table = new Table({ name: 'raw.github_fork', columns: [ { name: 'observed_timestamp', type: 'numeric', isPrimary: true }, - { name: 'name', type: 'varchar', isPrimary: true }, + { name: 'full_name', type: 'varchar', isPrimary: true }, { name: 'owner_login', type: 'varchar', isPrimary: true }, { name: 'created_at', type: 'numeric', isNullable: false }, diff --git a/packages/pipeline/src/data_sources/github/index.ts b/packages/pipeline/src/data_sources/github/index.ts index c5090900d4..8e71f95fd3 100644 --- a/packages/pipeline/src/data_sources/github/index.ts +++ b/packages/pipeline/src/data_sources/github/index.ts @@ -1,7 +1,7 @@ import { fetchAsync } from '@0x/utils'; export interface GithubRepoResponse { - name: string; + full_name: string; created_at: string; updated_at: string; pushed_at: string; @@ -27,7 +27,7 @@ export interface GithubPullRequestResponse { }; base: { repo: { - name: string; + full_name: string; }; }; } diff --git a/packages/pipeline/src/entities/github_fork.ts b/packages/pipeline/src/entities/github_fork.ts index 0e5326bb6a..db45bfc725 100644 --- a/packages/pipeline/src/entities/github_fork.ts +++ b/packages/pipeline/src/entities/github_fork.ts @@ -7,8 +7,8 @@ export class GithubFork { @PrimaryColumn({ name: 'observed_timestamp', type: 'bigint', transformer: numberToBigIntTransformer }) public observedTimestamp!: number; - @PrimaryColumn({ name: 'name' }) - public name!: string; + @PrimaryColumn({ name: 'full_name' }) + public fullName!: string; @PrimaryColumn({ name: 'owner_login' }) public ownerLogin!: string; diff --git a/packages/pipeline/src/entities/github_pull_request.ts b/packages/pipeline/src/entities/github_pull_request.ts index 8c17ff5ec2..148c1d03c2 100644 --- a/packages/pipeline/src/entities/github_pull_request.ts +++ b/packages/pipeline/src/entities/github_pull_request.ts @@ -7,8 +7,8 @@ export class GithubPullRequest { @PrimaryColumn({ name: 'observed_timestamp', type: 'bigint', transformer: numberToBigIntTransformer }) public observedTimestamp!: number; - @PrimaryColumn({ name: 'repo_name' }) - public repoName!: string; + @PrimaryColumn({ name: 'repo_full_name' }) + public repoFullName!: string; @PrimaryColumn({ name: 'pull_request_number', transformer: numberToBigIntTransformer }) public pullRequestNumber!: number; diff --git a/packages/pipeline/src/entities/github_repo.ts b/packages/pipeline/src/entities/github_repo.ts index c0c81f4d30..9ff60306d6 100644 --- a/packages/pipeline/src/entities/github_repo.ts +++ b/packages/pipeline/src/entities/github_repo.ts @@ -7,8 +7,8 @@ export class GithubRepo { @PrimaryColumn({ name: 'observed_timestamp', type: 'bigint', transformer: numberToBigIntTransformer }) public observedTimestamp!: number; - @PrimaryColumn({ name: 'name' }) - public name!: string; + @PrimaryColumn({ name: 'full_name' }) + public fullName!: string; @Column({ name: 'created_at', type: 'bigint', transformer: numberToBigIntTransformer }) public createdAt!: number; diff --git a/packages/pipeline/src/parsers/github/forks.ts b/packages/pipeline/src/parsers/github/forks.ts index 39140aecf1..1467a2b775 100644 --- a/packages/pipeline/src/parsers/github/forks.ts +++ b/packages/pipeline/src/parsers/github/forks.ts @@ -9,7 +9,7 @@ export function parseGithubForks(response: GithubForkResponse[], observedTimesta const result: GithubFork[] = response.map(fork => { const parsedFork = new GithubFork(); parsedFork.observedTimestamp = observedTimestamp; - parsedFork.name = fork.name; + parsedFork.fullName = fork.full_name; parsedFork.ownerLogin = fork.owner.login; parsedFork.createdAt = Date.parse(fork.created_at); parsedFork.updatedAt = Date.parse(fork.updated_at); diff --git a/packages/pipeline/src/parsers/github/pulls.ts b/packages/pipeline/src/parsers/github/pulls.ts index cebf773366..b4542ad209 100644 --- a/packages/pipeline/src/parsers/github/pulls.ts +++ b/packages/pipeline/src/parsers/github/pulls.ts @@ -12,7 +12,7 @@ export function parseGithubPulls( return response.map(pull => { const parsedPullRequest = new GithubPullRequest(); parsedPullRequest.observedTimestamp = observedTimestamp; - parsedPullRequest.repoName = pull.base.repo.name; + parsedPullRequest.repoFullName = pull.base.repo.full_name; parsedPullRequest.createdAt = Date.parse(pull.created_at); parsedPullRequest.updatedAt = Date.parse(pull.updated_at); parsedPullRequest.closedAt = pull.closed_at ? Date.parse(pull.closed_at) : null; diff --git a/packages/pipeline/src/parsers/github/repo.ts b/packages/pipeline/src/parsers/github/repo.ts index e6b4d808be..58f742f9f5 100644 --- a/packages/pipeline/src/parsers/github/repo.ts +++ b/packages/pipeline/src/parsers/github/repo.ts @@ -8,7 +8,7 @@ import { GithubRepo } from '../../entities'; export function parseGithubRepo(rawRepo: GithubRepoResponse, observedTimestamp: number): GithubRepo { const parsedRepo = new GithubRepo(); parsedRepo.observedTimestamp = observedTimestamp; - parsedRepo.name = rawRepo.name; + parsedRepo.fullName = rawRepo.full_name; parsedRepo.createdAt = Date.parse(rawRepo.created_at); parsedRepo.updatedAt = Date.parse(rawRepo.updated_at); parsedRepo.pushedAt = Date.parse(rawRepo.pushed_at); diff --git a/packages/pipeline/src/scripts/pull_github.ts b/packages/pipeline/src/scripts/pull_github.ts index d2534224d9..98a8ef7179 100644 --- a/packages/pipeline/src/scripts/pull_github.ts +++ b/packages/pipeline/src/scripts/pull_github.ts @@ -24,7 +24,7 @@ let connection: Connection; connection = await createConnection(ormConfig as ConnectionOptions); const accessToken = process.env.GITHUB_ACCESS_TOKEN; if (accessToken === undefined) { - throw new Error('Missing required env var: BLOXY_API_KEY'); + throw new Error('Missing required env var: GITHUB_ACCESS_TOKEN'); } const githubSource = new GithubSource(GITHUB_OWNER, GITHUB_REPO, GITHUB_BRANCH, accessToken); const observedTimestamp = Date.now(); diff --git a/packages/pipeline/test/entities/github_test.ts b/packages/pipeline/test/entities/github_test.ts index 2d4d819243..20668f3126 100644 --- a/packages/pipeline/test/entities/github_test.ts +++ b/packages/pipeline/test/entities/github_test.ts @@ -12,7 +12,7 @@ chaiSetup.configure(); // tslint:disable:custom-no-magic-numbers const fork: GithubFork = { observedTimestamp: Date.now(), - name: '0x-monorepo', + fullName: 'NoahZinsmeister/0x-monorepo', ownerLogin: 'NoahZinsmeister', createdAt: 1552181010000, updatedAt: 1552191123000, @@ -33,7 +33,7 @@ const fork: GithubFork = { const pullRequest: GithubPullRequest = { observedTimestamp: Date.now(), - repoName: '0x-monorepo', + repoFullName: '0xProject/0x-monorepo', pullRequestNumber: 1684, state: 'open', title: '[WIP] Pull Github data', @@ -46,7 +46,7 @@ const pullRequest: GithubPullRequest = { const repo: GithubRepo = { observedTimestamp: Date.now(), - name: '0x-monorepo', + fullName: '0xProject/0x-monorepo', createdAt: 1495549053000, updatedAt: 1551908929000, pushedAt: 1551916745000, diff --git a/packages/pipeline/test/fixtures/github/api_v3_forks.ts b/packages/pipeline/test/fixtures/github/api_v3_forks.ts index 8a280e3dab..3af9129c69 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_forks.ts +++ b/packages/pipeline/test/fixtures/github/api_v3_forks.ts @@ -13,7 +13,7 @@ import { GithubFork } from '../../../src/entities'; const ParsedGithubFork = new GithubFork(); ParsedGithubFork.observedTimestamp = Date.now(); -ParsedGithubFork.name = '0x-monorepo'; +ParsedGithubFork.fullName = 'NoahZinsmeister/0x-monorepo'; ParsedGithubFork.ownerLogin = 'NoahZinsmeister'; ParsedGithubFork.createdAt = 1552181010000; // tslint:disable-line:custom-no-magic-numbers ParsedGithubFork.updatedAt = 1552191123000; // tslint:disable-line:custom-no-magic-numbers diff --git a/packages/pipeline/test/fixtures/github/api_v3_pulls.ts b/packages/pipeline/test/fixtures/github/api_v3_pulls.ts index 38328e034e..f8935f9664 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_pulls.ts +++ b/packages/pipeline/test/fixtures/github/api_v3_pulls.ts @@ -6,7 +6,7 @@ import { GithubPullRequest } from '../../../src/entities'; const ParsedGithubPullRequest: GithubPullRequest = { observedTimestamp: Date.now(), - repoName: '0x-monorepo', + repoFullName: '0xProject/0x-monorepo', pullRequestNumber: 1684, state: 'open', title: '[WIP] Pull Github data', diff --git a/packages/pipeline/test/fixtures/github/api_v3_repo.ts b/packages/pipeline/test/fixtures/github/api_v3_repo.ts index 1ab909597e..0c17098801 100644 --- a/packages/pipeline/test/fixtures/github/api_v3_repo.ts +++ b/packages/pipeline/test/fixtures/github/api_v3_repo.ts @@ -6,7 +6,7 @@ import { GithubRepo } from '../../../src/entities'; const ParsedGithubRepo: GithubRepo = { observedTimestamp: Date.now(), - name: '0x-monorepo', + fullName: '0xProject/0x-monorepo', createdAt: 1495549053000, updatedAt: 1551908929000, pushedAt: 1551916745000, From 095882d0168931a684924419c55479eee33bbcf5 Mon Sep 17 00:00:00 2001 From: askeluv Date: Wed, 13 Mar 2019 16:30:10 +0800 Subject: [PATCH 13/95] Added Github issue entity --- .../1552024155243-CreateGithubPullRequest.ts | 8 +-- .../1552457956065-CreateGithubIssue.ts | 33 +++++++++++ .../pipeline/src/data_sources/github/index.ts | 31 +++++++++++ .../pipeline/src/entities/github_issue.ts | 48 ++++++++++++++++ packages/pipeline/src/entities/index.ts | 1 + packages/pipeline/src/ormconfig.ts | 2 + packages/pipeline/src/parsers/github/index.ts | 1 + .../pipeline/src/parsers/github/issues.ts | 32 +++++++++++ packages/pipeline/src/scripts/pull_github.ts | 18 +++++- .../pipeline/test/entities/github_test.ts | 31 ++++++++++- .../test/fixtures/github/api_v3_issues.json | 55 +++++++++++++++++++ .../test/fixtures/github/api_v3_issues.ts | 24 ++++++++ .../test/parsers/github/github_issues_test.ts | 27 +++++++++ packages/pipeline/tsconfig.json | 7 ++- 14 files changed, 307 insertions(+), 11 deletions(-) create mode 100644 packages/pipeline/migrations/1552457956065-CreateGithubIssue.ts create mode 100644 packages/pipeline/src/entities/github_issue.ts create mode 100644 packages/pipeline/src/parsers/github/issues.ts create mode 100644 packages/pipeline/test/fixtures/github/api_v3_issues.json create mode 100644 packages/pipeline/test/fixtures/github/api_v3_issues.ts create mode 100644 packages/pipeline/test/parsers/github/github_issues_test.ts diff --git a/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts b/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts index 82ef52a0f1..fed62455cf 100644 --- a/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts +++ b/packages/pipeline/migrations/1552024155243-CreateGithubPullRequest.ts @@ -7,14 +7,14 @@ const table = new Table({ { name: 'repo_full_name', type: 'varchar', isPrimary: true }, { name: 'pull_request_number', type: 'numeric', isPrimary: true }, + { name: 'title', type: 'varchar', isNullable: false }, + { name: 'state', type: 'varchar', isNullable: false }, + { name: 'user_login', type: 'varchar', isNullable: false }, + { name: 'created_at', type: 'numeric', isNullable: false }, { name: 'updated_at', type: 'numeric', isNullable: false }, { name: 'closed_at', type: 'numeric', isNullable: true }, { name: 'merged_at', type: 'numeric', isNullable: true }, - - { name: 'state', type: 'varchar', isNullable: false }, - { name: 'title', type: 'varchar', isNullable: false }, - { name: 'user_login', type: 'varchar', isNullable: false }, ], }); diff --git a/packages/pipeline/migrations/1552457956065-CreateGithubIssue.ts b/packages/pipeline/migrations/1552457956065-CreateGithubIssue.ts new file mode 100644 index 0000000000..8a2da630df --- /dev/null +++ b/packages/pipeline/migrations/1552457956065-CreateGithubIssue.ts @@ -0,0 +1,33 @@ +import { MigrationInterface, QueryRunner, Table } from 'typeorm'; + +const table = new Table({ + name: 'raw.github_issue', + columns: [ + { name: 'observed_timestamp', type: 'numeric', isPrimary: true }, + { name: 'repo_full_name', type: 'varchar', isPrimary: true }, + { name: 'issue_number', type: 'numeric', isPrimary: true }, + + { name: 'title', type: 'varchar', isNullable: false }, + { name: 'state', type: 'varchar', isNullable: false }, + { name: 'locked', type: 'boolean', isNullable: false }, + { name: 'user_login', type: 'varchar', isNullable: false }, + { name: 'user_type', type: 'varchar', isNullable: false }, + { name: 'user_site_admin', type: 'boolean', isNullable: false }, + { name: 'assignee_login', type: 'varchar', isNullable: true }, + { name: 'comments', type: 'numeric', isNullable: false }, + + { name: 'created_at', type: 'numeric', isNullable: false }, + { name: 'updated_at', type: 'numeric', isNullable: false }, + { name: 'closed_at', type: 'numeric', isNullable: true }, + ], +}); + +export class CreateGithubIssue1552457956065 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.createTable(table); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.dropTable(table); + } +} diff --git a/packages/pipeline/src/data_sources/github/index.ts b/packages/pipeline/src/data_sources/github/index.ts index 8e71f95fd3..63aff91d4b 100644 --- a/packages/pipeline/src/data_sources/github/index.ts +++ b/packages/pipeline/src/data_sources/github/index.ts @@ -46,6 +46,25 @@ export interface GithubComparisonResponse { total_commits: number; } +export interface GithubIssueResponse { + number: number; + title: string; + state: string; + locked: boolean; + assignee?: { + login?: string; + }; + created_at: string; + updated_at: string; + closed_at: string; + user: { + login: string; + type: string; + site_admin: boolean; + }; + comments: number; +} + // tslint:disable:prefer-function-over-method // ^ Keep consistency with other sources and help logical organization export class GithubSource { @@ -107,4 +126,16 @@ export class GithubSource { const respJson: GithubComparisonResponse = await resp.json(); return respJson; } + + /** + * Call Github API for pull requests and return result - paginated. + */ + public async getGithubIssuesAsync(page: number): Promise { + const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/issues?access_token=${ + this._accessToken + }&state=all&per_page=100&page=${page}`; + const resp = await fetchAsync(url); + const respJson: GithubIssueResponse[] = await resp.json(); + return respJson; + } } diff --git a/packages/pipeline/src/entities/github_issue.ts b/packages/pipeline/src/entities/github_issue.ts new file mode 100644 index 0000000000..f7e7d90ef4 --- /dev/null +++ b/packages/pipeline/src/entities/github_issue.ts @@ -0,0 +1,48 @@ +import { Column, Entity, PrimaryColumn } from 'typeorm'; + +import { numberToBigIntTransformer } from '../utils'; + +@Entity({ name: 'github_issue', schema: 'raw' }) +export class GithubIssue { + @PrimaryColumn({ name: 'observed_timestamp', type: 'bigint', transformer: numberToBigIntTransformer }) + public observedTimestamp!: number; + + @PrimaryColumn({ name: 'repo_full_name' }) + public repoFullName!: string; + + @PrimaryColumn({ name: 'issue_number', transformer: numberToBigIntTransformer }) + public issueNumber!: number; + + @Column({ name: 'title' }) + public title!: string; + + @Column({ name: 'state' }) + public state!: string; + + @Column({ name: 'locked', type: 'boolean' }) + public locked!: boolean; + + @Column({ name: 'assignee_login', type: 'varchar', nullable: true }) + public assigneeLogin?: string; + + @Column({ name: 'user_login' }) + public userLogin!: string; + + @Column({ name: 'user_type' }) + public userType!: string; + + @Column({ name: 'user_site_admin', type: 'boolean' }) + public userSiteAdmin!: boolean; + + @Column({ name: 'comments', transformer: numberToBigIntTransformer }) + public comments!: number; + + @Column({ name: 'created_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public createdAt!: number; + + @Column({ name: 'updated_at', type: 'bigint', transformer: numberToBigIntTransformer }) + public updatedAt!: number; + + @Column({ name: 'closed_at', type: 'bigint', transformer: numberToBigIntTransformer, nullable: true }) + public closedAt?: number; +} diff --git a/packages/pipeline/src/entities/index.ts b/packages/pipeline/src/entities/index.ts index 35cc578b14..55bb723773 100644 --- a/packages/pipeline/src/entities/index.ts +++ b/packages/pipeline/src/entities/index.ts @@ -9,6 +9,7 @@ export { ExchangeCancelEvent } from './exchange_cancel_event'; export { ExchangeCancelUpToEvent } from './exchange_cancel_up_to_event'; export { ExchangeFillEvent } from './exchange_fill_event'; export { GithubFork } from './github_fork'; +export { GithubIssue } from './github_issue'; export { GithubRepo } from './github_repo'; export { GithubPullRequest } from './github_pull_request'; export { NonfungibleDotComTrade } from './nonfungible_dot_com_trade'; diff --git a/packages/pipeline/src/ormconfig.ts b/packages/pipeline/src/ormconfig.ts index 4990ceae49..ec614417b6 100644 --- a/packages/pipeline/src/ormconfig.ts +++ b/packages/pipeline/src/ormconfig.ts @@ -14,6 +14,7 @@ import { ExchangeCancelUpToEvent, ExchangeFillEvent, GithubFork, + GithubIssue, GithubPullRequest, GithubRepo, NonfungibleDotComTrade, @@ -41,6 +42,7 @@ const entities = [ ExchangeFillEvent, ERC20ApprovalEvent, GithubFork, + GithubIssue, GithubPullRequest, GithubRepo, NonfungibleDotComTrade, diff --git a/packages/pipeline/src/parsers/github/index.ts b/packages/pipeline/src/parsers/github/index.ts index 31d17ff416..c27aead733 100644 --- a/packages/pipeline/src/parsers/github/index.ts +++ b/packages/pipeline/src/parsers/github/index.ts @@ -1,3 +1,4 @@ export { enrichGithubForkWithComparisonDetails, parseGithubForks } from './forks'; +export { parseGithubIssues } from './issues'; export { parseGithubRepo } from './repo'; export { parseGithubPulls } from './pulls'; diff --git a/packages/pipeline/src/parsers/github/issues.ts b/packages/pipeline/src/parsers/github/issues.ts new file mode 100644 index 0000000000..62e1582f48 --- /dev/null +++ b/packages/pipeline/src/parsers/github/issues.ts @@ -0,0 +1,32 @@ +import { GithubIssueResponse } from '../../data_sources/github'; +import { GithubIssue } from '../../entities'; + +/** + * Converts a Github response from the API into an array GithubIssue entity. + * @param response A Github response from the API. + * @param observedTimestamp The timestamp to record for the observation of the entities. + */ +export function parseGithubIssues( + response: GithubIssueResponse[], + observedTimestamp: number, + repoFullName: string, +): GithubIssue[] { + return response.map(issue => { + const parsedIssue = new GithubIssue(); + parsedIssue.observedTimestamp = observedTimestamp; + parsedIssue.repoFullName = repoFullName; + parsedIssue.issueNumber = issue.number; + parsedIssue.title = issue.title; + parsedIssue.state = issue.state; + parsedIssue.locked = issue.locked; + parsedIssue.assigneeLogin = issue.assignee ? issue.assignee.login : undefined; + parsedIssue.userLogin = issue.user.login; + parsedIssue.userType = issue.user.type; + parsedIssue.userSiteAdmin = issue.user.site_admin; + parsedIssue.comments = issue.comments; + parsedIssue.createdAt = Date.parse(issue.created_at); + parsedIssue.updatedAt = Date.parse(issue.updated_at); + parsedIssue.closedAt = issue.closed_at ? Date.parse(issue.closed_at) : undefined; + return parsedIssue; + }); +} diff --git a/packages/pipeline/src/scripts/pull_github.ts b/packages/pipeline/src/scripts/pull_github.ts index 98a8ef7179..5aed884b51 100644 --- a/packages/pipeline/src/scripts/pull_github.ts +++ b/packages/pipeline/src/scripts/pull_github.ts @@ -3,11 +3,12 @@ import { Connection, ConnectionOptions, createConnection } from 'typeorm'; import { logUtils } from '@0x/utils'; import { GithubSource } from '../data_sources/github'; -import { GithubFork, GithubPullRequest, GithubRepo } from '../entities'; +import { GithubFork, GithubIssue, GithubPullRequest, GithubRepo } from '../entities'; import * as ormConfig from '../ormconfig'; import { enrichGithubForkWithComparisonDetails, parseGithubForks, + parseGithubIssues, parseGithubPulls, parseGithubRepo, } from '../parsers/github'; @@ -73,5 +74,20 @@ let connection: Connection; await GithubForkRepository.save(enrichedForks); } + // get issues and save + const GithubIssueRepository = connection.getRepository(GithubIssue); + numberOfRecords = RECORDS_PER_PAGE; + page = 1; + while (numberOfRecords === RECORDS_PER_PAGE) { + logUtils.log(`Fetching Github issues from API, page: ${page}.`); + const rawIssues = await githubSource.getGithubIssuesAsync(page); + const repoFullName = `${GITHUB_OWNER}/${GITHUB_REPO}`; + const issues = parseGithubIssues(rawIssues, observedTimestamp, repoFullName); + numberOfRecords = issues.length; + page++; + logUtils.log(`Saving ${issues.length} issues to database.`); + await GithubIssueRepository.save(issues); + } + process.exit(0); })().catch(handleError); diff --git a/packages/pipeline/test/entities/github_test.ts b/packages/pipeline/test/entities/github_test.ts index 20668f3126..a41d140f31 100644 --- a/packages/pipeline/test/entities/github_test.ts +++ b/packages/pipeline/test/entities/github_test.ts @@ -1,7 +1,7 @@ import 'mocha'; import 'reflect-metadata'; -import { GithubFork, GithubPullRequest, GithubRepo } from '../../src/entities'; +import { GithubFork, GithubIssue, GithubPullRequest, GithubRepo } from '../../src/entities'; import { createDbConnectionOnceAsync } from '../db_setup'; import { chaiSetup } from '../utils/chai_setup'; @@ -31,6 +31,23 @@ const fork: GithubFork = { totalCommits: 1, }; +const issue: GithubIssue = { + observedTimestamp: Date.now(), + repoFullName: '0xProject/0x-monorepo', + issueNumber: 1691, + title: 'An in-range update of source-map-support is breaking the build', + state: 'open', + locked: false, + assigneeLogin: undefined, + userLogin: 'greenkeeper[bot]', + userType: 'Bot', + userSiteAdmin: false, + comments: 1, + createdAt: Date.parse('2019-03-12T17:30:58Z'), + updatedAt: Date.parse('2019-03-12T17:32:26Z'), + closedAt: undefined, +}; + const pullRequest: GithubPullRequest = { observedTimestamp: Date.now(), repoFullName: '0xProject/0x-monorepo', @@ -62,8 +79,16 @@ const repo: GithubRepo = { describe('GithubFork entity', () => { it('save/find', async () => { const connection = await createDbConnectionOnceAsync(); - const forksRepository = connection.getRepository(GithubFork); - await testSaveAndFindEntityAsync(forksRepository, fork); + const forkRepository = connection.getRepository(GithubFork); + await testSaveAndFindEntityAsync(forkRepository, fork); + }); +}); + +describe('GithubIssue entity', () => { + it('save/find', async () => { + const connection = await createDbConnectionOnceAsync(); + const issueRepository = connection.getRepository(GithubIssue); + await testSaveAndFindEntityAsync(issueRepository, issue); }); }); diff --git a/packages/pipeline/test/fixtures/github/api_v3_issues.json b/packages/pipeline/test/fixtures/github/api_v3_issues.json new file mode 100644 index 0000000000..b554efe9d6 --- /dev/null +++ b/packages/pipeline/test/fixtures/github/api_v3_issues.json @@ -0,0 +1,55 @@ +[ + { + "url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1691", + "repository_url": "https://api.github.com/repos/0xProject/0x-monorepo", + "labels_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1691/labels{/name}", + "comments_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1691/comments", + "events_url": "https://api.github.com/repos/0xProject/0x-monorepo/issues/1691/events", + "html_url": "https://github.com/0xProject/0x-monorepo/issues/1691", + "id": 420115585, + "node_id": "MDU6SXNzdWU0MjAxMTU1ODU=", + "number": 1691, + "title": "An in-range update of source-map-support is breaking the build 🚨", + "user": { + "login": "greenkeeper[bot]", + "id": 23040076, + "node_id": "MDM6Qm90MjMwNDAwNzY=", + "avatar_url": "https://avatars3.githubusercontent.com/in/505?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/greenkeeper%5Bbot%5D", + "html_url": "https://github.com/apps/greenkeeper", + "followers_url": "https://api.github.com/users/greenkeeper%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/greenkeeper%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/greenkeeper%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/greenkeeper%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/greenkeeper%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/greenkeeper%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/greenkeeper%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/greenkeeper%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/greenkeeper%5Bbot%5D/received_events", + "type": "Bot", + "site_admin": false + }, + "labels": [ + { + "id": 618533621, + "node_id": "MDU6TGFiZWw2MTg1MzM2MjE=", + "url": "https://api.github.com/repos/0xProject/0x-monorepo/labels/greenkeeper", + "name": "greenkeeper", + "color": "00c775", + "default": false + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2019-03-12T17:30:58Z", + "updated_at": "2019-03-12T17:32:26Z", + "closed_at": null, + "author_association": "CONTRIBUTOR", + "body": "\n## The devDependency [source-map-support](https://github.com/evanw/node-source-map-support) was updated from `0.5.10` to `0.5.11`.\n\n🚨 [View failing branch](https://github.com/0xProject/0x-monorepo/compare/development...0xProject:greenkeeper%2Fsource-map-support-0.5.11).\n\nThis version is **covered** by your **current version range** and after updating it in your project **the build failed**.\n\n\n\n\nsource-map-support is a devDependency of this project. It **might not break your production code or affect downstream projects**, but probably breaks your build or test tools, which may **prevent deploying or publishing**.\n\n\n\n
\nStatus Details\n\n- ❌ **ci/circleci: build:** Your tests failed on CircleCI ([Details](https://circleci.com/gh/0xProject/0x-monorepo/65642?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link)).\n- ✅ **ci/circleci: test-python:** Your tests passed on CircleCI! ([Details](https://circleci.com/gh/0xProject/0x-monorepo/65641?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link)).\n- ✅ **ci/circleci: static-tests-python:** Your tests passed on CircleCI! ([Details](https://circleci.com/gh/0xProject/0x-monorepo/65643?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link)).\n
\n\n\n---\n\n
\nCommits\n

The new version differs by 6 commits.

\n
    \n
  • 6035ef5 0.5.11
  • \n
  • f70e1ca Update built files
  • \n
  • bd2c3f5 Merge pull request #236 from LinusU/update-deps
  • \n
  • 2e04483 Update some dev-dependencies
  • \n
  • 538e1c5 Merge pull request #235 from ArtemGovorov/patch-1
  • \n
  • 16f1a6d Fix resetRetrieveHandlers to reset retrieveSourceMap and retrieveFile functions
  • \n
\n

See the full diff

\n
\n\n\n
\nFAQ and help\n\nThere is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).\n
\n\n---\n\n\nYour [Greenkeeper](https://greenkeeper.io) Bot :palm_tree:\n" + } +] diff --git a/packages/pipeline/test/fixtures/github/api_v3_issues.ts b/packages/pipeline/test/fixtures/github/api_v3_issues.ts new file mode 100644 index 0000000000..e91095606d --- /dev/null +++ b/packages/pipeline/test/fixtures/github/api_v3_issues.ts @@ -0,0 +1,24 @@ +import { GithubIssue } from '../../../src/entities'; + +// To re-create the JSON files from the API (e.g. if the API output schema changes), run the below command: +// curl "https://api.github.com/repos/0xProject/0x-monorepo/issues?state=all&per_page=1" +// docs here: https://developer.github.com/v3/issues/#list-issues-for-a-repository + +const ParsedGithubIssue: GithubIssue = { + observedTimestamp: Date.now(), + repoFullName: '0xProject/0x-monorepo', + issueNumber: 1691, + title: 'An in-range update of source-map-support is breaking the build 🚨', + state: 'open', + locked: false, + assigneeLogin: undefined, + userLogin: 'greenkeeper[bot]', + userType: 'Bot', + userSiteAdmin: false, + comments: 1, + createdAt: Date.parse('2019-03-12T17:30:58Z'), + updatedAt: Date.parse('2019-03-12T17:32:26Z'), + closedAt: undefined, +}; + +export { ParsedGithubIssue }; diff --git a/packages/pipeline/test/parsers/github/github_issues_test.ts b/packages/pipeline/test/parsers/github/github_issues_test.ts new file mode 100644 index 0000000000..758c91411f --- /dev/null +++ b/packages/pipeline/test/parsers/github/github_issues_test.ts @@ -0,0 +1,27 @@ +import * as chai from 'chai'; +import 'mocha'; + +import { GithubIssueResponse } from '../../../src/data_sources/github'; +import { parseGithubIssues } from '../../../src/parsers/github'; +import { chaiSetup } from '../../utils/chai_setup'; + +import { ParsedGithubIssue } from '../../fixtures/github/api_v3_issues'; +import * as githubIssuesResponse from '../../fixtures/github/api_v3_issues.json'; + +chaiSetup.configure(); +const expect = chai.expect; + +// tslint:disable:custom-no-magic-numbers +describe('github_issues', () => { + describe('parseGithubIssues', () => { + it('converts GithubIssuesResponse to GithubIssue entities', () => { + const response: GithubIssueResponse[] = githubIssuesResponse; + const expected = ParsedGithubIssue; + const observedTimestamp = expected.observedTimestamp; + const repoFullName = '0xProject/0x-monorepo'; + const actualList = parseGithubIssues(response, observedTimestamp, repoFullName); + const actual = actualList[0]; + expect(actual).deep.equal(expected); + }); + }); +}); diff --git a/packages/pipeline/tsconfig.json b/packages/pipeline/tsconfig.json index 0ad8ddaa3c..75b8898f03 100644 --- a/packages/pipeline/tsconfig.json +++ b/packages/pipeline/tsconfig.json @@ -15,9 +15,10 @@ "./test/fixtures/copper/api_v1_list_leads.json", "./test/fixtures/copper/api_v1_list_opportunities.json", "./test/fixtures/etherscan/api_v1_accounts_transactions.json", - "./test/fixtures/github/api_v3_repo.json", - "./test/fixtures/github/api_v3_pulls.json", + "./test/fixtures/github/api_v3_compare.json", "./test/fixtures/github/api_v3_forks.json", - "./test/fixtures/github/api_v3_compare.json" + "./test/fixtures/github/api_v3_issues.json", + "./test/fixtures/github/api_v3_pulls.json", + "./test/fixtures/github/api_v3_repo.json" ] } From a7f06f2be5285048ae73fb71dd8ab932e710a1f2 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 18 Mar 2019 16:44:11 +0100 Subject: [PATCH 14/95] Update coordinator abi-gen-wrapper --- .../src/generated-wrappers/coordinator.ts | 78 ++++++++++++------- 1 file changed, 52 insertions(+), 26 deletions(-) diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts index c102596d12..c9f50ac967 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts @@ -157,6 +157,32 @@ export class CoordinatorContract extends BaseContract { return result; }, }; + public EIP712_EXCHANGE_DOMAIN_HASH = { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('EIP712_EXCHANGE_DOMAIN_HASH()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('EIP712_EXCHANGE_DOMAIN_HASH()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; public assertValidCoordinatorApprovals = { async callAsync( transaction: {salt: BigNumber;signerAddress: string;data: string}, @@ -193,32 +219,6 @@ export class CoordinatorContract extends BaseContract { return result; }, }; - public EIP712_DOMAIN_HASH = { - async callAsync( - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as CoordinatorContract; - const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; public assertValidTransactionOrdersApproval = { async callAsync( transaction: {salt: BigNumber;signerAddress: string;data: string}, @@ -257,6 +257,32 @@ export class CoordinatorContract extends BaseContract { return result; }, }; + public EIP712_COORDINATOR_DOMAIN_HASH = { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('EIP712_COORDINATOR_DOMAIN_HASH()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('EIP712_COORDINATOR_DOMAIN_HASH()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, From d4187dffa3c862d0cd1400d825a308fa6ddf789f Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 18 Mar 2019 17:20:51 +0100 Subject: [PATCH 15/95] Add `createCoordinatorApprovalTypedData` method to order-utils and use in Coordinator tests --- .../coordinator/test/utils/hash_utils.ts | 23 ++--------- packages/order-utils/src/eip712_utils.ts | 41 ++++++++++++++++++- 2 files changed, 44 insertions(+), 20 deletions(-) diff --git a/contracts/coordinator/test/utils/hash_utils.ts b/contracts/coordinator/test/utils/hash_utils.ts index caba4cf3c8..e6a128229d 100644 --- a/contracts/coordinator/test/utils/hash_utils.ts +++ b/contracts/coordinator/test/utils/hash_utils.ts @@ -1,5 +1,4 @@ -import { eip712Utils, transactionHashUtils } from '@0x/order-utils'; -import { constants } from '@0x/order-utils/lib/src/constants'; +import { eip712Utils } from '@0x/order-utils'; import { SignedZeroExTransaction } from '@0x/types'; import { BigNumber, signTypedDataUtils } from '@0x/utils'; import * as _ from 'lodash'; @@ -11,25 +10,11 @@ export const hashUtils = { txOrigin: string, approvalExpirationTimeSeconds: BigNumber, ): Buffer { - const domain = { - name: constants.COORDINATOR_DOMAIN_NAME, - version: constants.COORDINATOR_DOMAIN_VERSION, + const typedData = eip712Utils.createCoordinatorApprovalTypedData( + transaction, verifyingContractAddress, - }; - const transactionHash = transactionHashUtils.getTransactionHashHex(transaction); - const approval = { txOrigin, - transactionHash, - transactionSignature: transaction.signature, - approvalExpirationTimeSeconds: approvalExpirationTimeSeconds.toString(), - }; - const typedData = eip712Utils.createTypedData( - constants.COORDINATOR_APPROVAL_SCHEMA.name, - { - CoordinatorApproval: constants.COORDINATOR_APPROVAL_SCHEMA.parameters, - }, - approval, - domain, + approvalExpirationTimeSeconds, ); const hashBuffer = signTypedDataUtils.generateTypedDataHash(typedData); return hashBuffer; diff --git a/packages/order-utils/src/eip712_utils.ts b/packages/order-utils/src/eip712_utils.ts index 685fdc8c84..70eb071d6a 100644 --- a/packages/order-utils/src/eip712_utils.ts +++ b/packages/order-utils/src/eip712_utils.ts @@ -6,11 +6,14 @@ import { EIP712TypedData, EIP712Types, Order, + SignedZeroExTransaction, ZeroExTransaction, } from '@0x/types'; +import { BigNumber } from '@0x/utils'; import * as _ from 'lodash'; import { constants } from './constants'; +import { transactionHashUtils } from './transaction_hash'; export const eip712Utils = { /** @@ -69,7 +72,7 @@ export const eip712Utils = { /** * Creates an ExecuteTransaction EIP712TypedData object for use with signTypedData and * 0x Exchange executeTransaction. - * @param ZeroExTransaction the 0x transaction + * @param zeroExTransaction the 0x transaction * @return A typed data object */ createZeroExTransactionTypedData: (zeroExTransaction: ZeroExTransaction): EIP712TypedData => { @@ -89,4 +92,40 @@ export const eip712Utils = { ); return typedData; }, + /** + * Creates an Coordiantor typedData EIP712TypedData object for use with the Coordinator extension contract + * @param zeroExTransaction A 0x transaction + * @param verifyingContractAddress The coordinator extension contract address that will be verifying the typedData + * @param txOrigin The desired `tx.origin` that should be able to submit an Ethereum txn involving this 0x transaction + * @param approvalExpirationTimeSeconds The approvals expiration time + * @return A typed data object + */ + createCoordinatorApprovalTypedData: ( + transaction: SignedZeroExTransaction, + verifyingContractAddress: string, + txOrigin: string, + approvalExpirationTimeSeconds: BigNumber, + ): EIP712TypedData => { + const domain = { + name: constants.COORDINATOR_DOMAIN_NAME, + version: constants.COORDINATOR_DOMAIN_VERSION, + verifyingContractAddress, + }; + const transactionHash = transactionHashUtils.getTransactionHashHex(transaction); + const approval = { + txOrigin, + transactionHash, + transactionSignature: transaction.signature, + approvalExpirationTimeSeconds: approvalExpirationTimeSeconds.toString(), + }; + const typedData = eip712Utils.createTypedData( + constants.COORDINATOR_APPROVAL_SCHEMA.name, + { + CoordinatorApproval: constants.COORDINATOR_APPROVAL_SCHEMA.parameters, + }, + approval, + domain, + ); + return typedData; + }, }; From af0d83010355d6238f44d426a85d3f0b202ed050 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 18 Mar 2019 17:20:58 +0100 Subject: [PATCH 16/95] Update coordinator wrapper --- .../src/generated-wrappers/coordinator.ts | 78 +++++++------------ 1 file changed, 26 insertions(+), 52 deletions(-) diff --git a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts index c9f50ac967..c102596d12 100644 --- a/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts +++ b/packages/abi-gen-wrappers/src/generated-wrappers/coordinator.ts @@ -157,32 +157,6 @@ export class CoordinatorContract extends BaseContract { return result; }, }; - public EIP712_EXCHANGE_DOMAIN_HASH = { - async callAsync( - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as CoordinatorContract; - const encodedData = self._strictEncodeArguments('EIP712_EXCHANGE_DOMAIN_HASH()', []); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_EXCHANGE_DOMAIN_HASH()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; public assertValidCoordinatorApprovals = { async callAsync( transaction: {salt: BigNumber;signerAddress: string;data: string}, @@ -219,6 +193,32 @@ export class CoordinatorContract extends BaseContract { return result; }, }; + public EIP712_DOMAIN_HASH = { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as CoordinatorContract; + const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; public assertValidTransactionOrdersApproval = { async callAsync( transaction: {salt: BigNumber;signerAddress: string;data: string}, @@ -257,32 +257,6 @@ export class CoordinatorContract extends BaseContract { return result; }, }; - public EIP712_COORDINATOR_DOMAIN_HASH = { - async callAsync( - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as CoordinatorContract; - const encodedData = self._strictEncodeArguments('EIP712_COORDINATOR_DOMAIN_HASH()', []); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_COORDINATOR_DOMAIN_HASH()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, From b5463d522bbdba4ca8d5563931f34f7c997a81e5 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 18 Mar 2019 17:30:10 +0100 Subject: [PATCH 17/95] Add PR numbers --- packages/abi-gen-wrappers/CHANGELOG.json | 3 ++- packages/migrations/CHANGELOG.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/abi-gen-wrappers/CHANGELOG.json b/packages/abi-gen-wrappers/CHANGELOG.json index c95588d7fe..22e50123f1 100644 --- a/packages/abi-gen-wrappers/CHANGELOG.json +++ b/packages/abi-gen-wrappers/CHANGELOG.json @@ -3,7 +3,8 @@ "version": "4.1.0", "changes": [ { - "note": "Add Coordinator and CoordinatorRegistry contract wrappers" + "note": "Add Coordinator and CoordinatorRegistry contract wrappers", + "pr": 1689 } ] }, diff --git a/packages/migrations/CHANGELOG.json b/packages/migrations/CHANGELOG.json index 93c30575a9..e89711174b 100644 --- a/packages/migrations/CHANGELOG.json +++ b/packages/migrations/CHANGELOG.json @@ -3,7 +3,8 @@ "version": "4.1.0", "changes": [ { - "note": "Add deployment of `Coordinator` and `CoordinatorRegistry` contracts to migration script" + "note": "Add deployment of `Coordinator` and `CoordinatorRegistry` contracts to migration script", + "pr": 1689 } ] }, From 9c7bdcfeef045887e450faf7067260bdc1acd474 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 18 Mar 2019 20:37:01 +0100 Subject: [PATCH 18/95] Add testnet and mainnet coordinator and coordinatorRegistry addresses --- packages/contract-addresses/src/index.ts | 12 ++++++++++++ .../src/zero_ex/contract_addresses/__init__.py | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/packages/contract-addresses/src/index.ts b/packages/contract-addresses/src/index.ts index 4f580e8256..f260196eff 100644 --- a/packages/contract-addresses/src/index.ts +++ b/packages/contract-addresses/src/index.ts @@ -10,6 +10,8 @@ export interface ContractAddresses { forwarder: string; orderValidator: string; dutchAuction: string; + coordinatorRegistry: string; + coordinator: string; } export enum NetworkId { @@ -34,6 +36,8 @@ const networkToAddresses: { [networkId: number]: ContractAddresses } = { orderValidator: '0x9463e518dea6810309563c81d5266c1b1d149138', // @todo hysz/dekz: Add mainnet address once deployed. dutchAuction: NULL_ADDRESS, + coordinatorRegistry: '0x45797531b873fd5e519477a070a955764c1a5b07', + coordinator: '0x24675738816c87ad37e712cc24f309a0c906187f', }, 3: { erc20Proxy: '0xb1408f4c245a23c31b98d2c626777d4c0d766caa', @@ -45,6 +49,8 @@ const networkToAddresses: { [networkId: number]: ContractAddresses } = { forwarder: '0x2240dab907db71e64d3e0dba4800c83b5c502d4e', orderValidator: '0x90431a90516ab49af23a0530e04e8c7836e7122f', dutchAuction: '0x2df6b59309f35ada230ec7d61d7d97355017a1df', + coordinatorRegistry: '0x403cc23e88c17c4652fb904784d1af640a6722d9', + coordinator: '0xc442300dcb4df1ff1db0173e77556dc559de6006', }, 4: { exchange: '0xbce0b5f6eb618c565c3e5f5cd69652bbc279f44e', @@ -56,6 +62,8 @@ const networkToAddresses: { [networkId: number]: ContractAddresses } = { forwarder: '0x2d40589abbdee84961f3a7656b9af7adb0ee5ab4', orderValidator: '0x0c5173a51e26b29d6126c686756fb9fbef71f762', dutchAuction: '0xdd7bd6437e67c422879364740ab5855fe3dc41f7', + coordinatorRegistry: '0x1084b6a398e47907bae43fec3ff4b677db6e4fee', + coordinator: '0xc05e6c01b83eeedecac2f7bab9367da4d4c108df', }, 42: { erc20Proxy: '0xf1ec01d6236d3cd881a0bf0130ea25fe4234003e', @@ -67,6 +75,8 @@ const networkToAddresses: { [networkId: number]: ContractAddresses } = { forwarder: '0x17992e4ffb22730138e4b62aaa6367fa9d3699a6', orderValidator: '0xb389da3d204b412df2f75c6afb3d0a7ce0bc283d', dutchAuction: '0xe11667fb51f34c5367f40d7e379327ce32ee7150', + coordinatorRegistry: '0x09fb99968c016a3ff537bf58fb3d9fe55a7975d5', + coordinator: '0x04b2b090bad68b254881d7eb645a258ce66cc998', }, // NetworkId 50 represents our Ganache snapshot generated from migrations. 50: { @@ -79,6 +89,8 @@ const networkToAddresses: { [networkId: number]: ContractAddresses } = { forwarder: '0x6000eca38b8b5bba64986182fe2a69c57f6b5414', orderValidator: '0x32eecaf51dfea9618e9bc94e9fbfddb1bbdcba15', dutchAuction: '0x7e3f4e1deb8d3a05d9d2da87d9521268d0ec3239', + coordinatorRegistry: '0xaa86dda78e9434aca114b6676fc742a18d15a1cc', + coordinator: '0x4d3d5c850dd5bd9d6f4adda3dd039a3c8054ca29', }, }; diff --git a/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py b/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py index aa298b20ff..25984d2d70 100644 --- a/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py +++ b/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py @@ -41,6 +41,9 @@ NETWORK_TO_ADDRESSES: Dict[NetworkId, ContractAddresses] = { asset_proxy_owner="0x17992e4ffb22730138e4b62aaa6367fa9d3699a6", forwarder="0x5468a1dc173652ee28d249c271fa9933144746b1", order_validator="0x9463e518dea6810309563c81d5266c1b1d149138", + coordinator_registry="0x45797531b873fd5e519477a070a955764c1a5b07", + coordinator="0x24675738816c87ad37e712cc24f309a0c906187f", + ), NetworkId.ROPSTEN: ContractAddresses( erc20_proxy="0xb1408f4c245a23c31b98d2c626777d4c0d766caa", @@ -51,6 +54,8 @@ NETWORK_TO_ADDRESSES: Dict[NetworkId, ContractAddresses] = { asset_proxy_owner="0xf5fa5b5fed2727a0e44ac67f6772e97977aa358b", forwarder="0x2240dab907db71e64d3e0dba4800c83b5c502d4e", order_validator="0x90431a90516ab49af23a0530e04e8c7836e7122f", + coordinator_registry="0x403cc23e88c17c4652fb904784d1af640a6722d9", + coordinator="0xc442300dcb4df1ff1db0173e77556dc559de6006", ), NetworkId.RINKEBY: ContractAddresses( exchange="0xbce0b5f6eb618c565c3e5f5cd69652bbc279f44e", @@ -61,6 +66,8 @@ NETWORK_TO_ADDRESSES: Dict[NetworkId, ContractAddresses] = { asset_proxy_owner="0xe1703da878afcebff5b7624a826902af475b9c03", forwarder="0x2d40589abbdee84961f3a7656b9af7adb0ee5ab4", order_validator="0x0c5173a51e26b29d6126c686756fb9fbef71f762", + coordinator_registry="0x1084b6a398e47907bae43fec3ff4b677db6e4fee", + coordinator="0xc05e6c01b83eeedecac2f7bab9367da4d4c108df", ), NetworkId.KOVAN: ContractAddresses( erc20_proxy="0xf1ec01d6236d3cd881a0bf0130ea25fe4234003e", @@ -71,6 +78,8 @@ NETWORK_TO_ADDRESSES: Dict[NetworkId, ContractAddresses] = { asset_proxy_owner="0x2c824d2882baa668e0d5202b1e7f2922278703f8", forwarder="0x17992e4ffb22730138e4b62aaa6367fa9d3699a6", order_validator="0xb389da3d204b412df2f75c6afb3d0a7ce0bc283d", + coordinator_registry="0x09fb99968c016a3ff537bf58fb3d9fe55a7975d5", + coordinator="0x04b2b090bad68b254881d7eb645a258ce66cc998", ), NetworkId.GANACHE: ContractAddresses( exchange="0x48bacb9266a570d521063ef5dd96e61686dbe788", @@ -81,6 +90,8 @@ NETWORK_TO_ADDRESSES: Dict[NetworkId, ContractAddresses] = { asset_proxy_owner="0x34d402f14d58e001d8efbe6585051bf9706aa064", forwarder="0x6000eca38b8b5bba64986182fe2a69c57f6b5414", order_validator="0x32eecaf51dfea9618e9bc94e9fbfddb1bbdcba15", + coordinator_registry="0xaa86dda78e9434aca114b6676fc742a18d15a1cc", + coordinator="0x4d3d5c850dd5bd9d6f4adda3dd039a3c8054ca29", ), } """A mapping from instances of NetworkId to instances of ContractAddresses. From 9991fca2e5f20367df48accb42b5711755eff757 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 18 Mar 2019 20:39:02 +0100 Subject: [PATCH 19/95] Add changelog entry for contract-addressesa --- packages/contract-addresses/CHANGELOG.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/contract-addresses/CHANGELOG.json b/packages/contract-addresses/CHANGELOG.json index ec04c440da..25468868b3 100644 --- a/packages/contract-addresses/CHANGELOG.json +++ b/packages/contract-addresses/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "2.3.0", + "changes": [ + { + "note": "Add addresses for coordinator extension contract and coordinator registry", + "pr": 1689 + } + ] + }, { "version": "2.2.2", "changes": [ From 849ca58228cd582f6ba2f80d6962015ce096a7b4 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 18 Mar 2019 20:40:29 +0100 Subject: [PATCH 20/95] Fix PR number --- packages/contract-artifacts/CHANGELOG.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/contract-artifacts/CHANGELOG.json b/packages/contract-artifacts/CHANGELOG.json index 20dc9ef372..ccf46dc8c1 100644 --- a/packages/contract-artifacts/CHANGELOG.json +++ b/packages/contract-artifacts/CHANGELOG.json @@ -4,7 +4,7 @@ "changes": [ { "note": "Added artifact for `Coordinaotr` and `CoordinatorRegistry` contracts", - "pr": 1503 + "pr": 1689 } ] }, From 4e20fe1602868e41a63f22b4ba0dbaf63ce674db Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Sun, 17 Mar 2019 19:46:45 -0700 Subject: [PATCH 21/95] Update ganache-core to 2.5.3 --- packages/subproviders/package.json | 2 +- packages/web3-wrapper/package.json | 2 +- yarn.lock | 133 +++++++++++++++++++++++------ 3 files changed, 107 insertions(+), 30 deletions(-) diff --git a/packages/subproviders/package.json b/packages/subproviders/package.json index 925fa66b52..49dadb2ed9 100644 --- a/packages/subproviders/package.json +++ b/packages/subproviders/package.json @@ -45,7 +45,7 @@ "ethereum-types": "^2.1.0", "ethereumjs-tx": "^1.3.5", "ethereumjs-util": "^5.1.1", - "ganache-core": "^2.3.3", + "ganache-core": "^2.5.3", "hdkey": "^0.7.1", "json-rpc-error": "2.0.0", "lodash": "^4.17.11", diff --git a/packages/web3-wrapper/package.json b/packages/web3-wrapper/package.json index 21ed0f28f2..d93e1d1dc0 100644 --- a/packages/web3-wrapper/package.json +++ b/packages/web3-wrapper/package.json @@ -42,7 +42,7 @@ "chai-as-promised": "^7.1.0", "chai-bignumber": "^3.0.0", "dirty-chai": "^2.0.1", - "ganache-core": "^2.3.3", + "ganache-core": "^2.5.3", "make-promises-safe": "^1.1.0", "mocha": "^4.1.0", "npm-run-all": "^4.1.2", diff --git a/yarn.lock b/yarn.lock index 4f342df7da..ed2369fc1a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6495,6 +6495,17 @@ ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0, ether ethereumjs-util "^5.0.0" merkle-patricia-tree "^2.1.2" +ethereumjs-block@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.0.tgz#8c6c3ab4a5eff0a16d9785fbeedbe643f4dbcbef" + integrity sha512-Ye+uG/L2wrp364Zihdlr/GfC3ft+zG8PdHcRtsBFNNH1CkOhxOwdB8friBU85n89uRZ9eIMAywCq0F4CwT1wAw== + dependencies: + async "^2.0.1" + ethereumjs-common "^1.1.0" + ethereumjs-tx "^1.2.2" + ethereumjs-util "^5.0.0" + merkle-patricia-tree "^2.1.2" + ethereumjs-blockstream@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/ethereumjs-blockstream/-/ethereumjs-blockstream-6.0.0.tgz#79d726d1f358935eb65195e91d40344c31e87eff" @@ -6507,9 +6518,10 @@ ethereumjs-common@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-0.6.1.tgz#ec98edf315a7f107afb6acc48e937a8266979fae" -ethereumjs-common@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-0.4.1.tgz#27690a24a817b058cc3a2aedef9392e8d7d63984" +ethereumjs-common@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.1.0.tgz#5ec9086c314d619d8f05e79a0525829fcb0e93cb" + integrity sha512-LUmYkKV/HcZbWRyu3OU9YOevsH3VJDXtI6kEd8VZweQec+JjDGKCmAVKUyzhYUHqxRJu7JNALZ3A/b3NXOP6tA== ethereumjs-tx@1.3.7: version "1.3.7" @@ -6559,21 +6571,18 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum safe-buffer "^5.1.1" secp256k1 "^3.0.1" -ethereumjs-vm@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.4.0.tgz#244f1e35f2755e537a13546111d1a4c159d34b13" +ethereumjs-util@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz#e9c51e5549e8ebd757a339cc00f5380507e799c8" + integrity sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q== dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~1.7.0" - ethereumjs-common "~0.4.0" - ethereumjs-util "^5.2.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.1.2" - rustbn.js "~0.2.0" + bn.js "^4.11.0" + create-hash "^1.1.2" + ethjs-util "0.1.6" + keccak "^1.0.2" + rlp "^2.0.0" safe-buffer "^5.1.1" + secp256k1 "^3.0.1" ethereumjs-vm@^2.0.2, ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4: version "2.3.4" @@ -6591,6 +6600,23 @@ ethereumjs-vm@^2.0.2, ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4: rustbn.js "~0.1.1" safe-buffer "^5.1.1" +ethereumjs-vm@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" + integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== + dependencies: + async "^2.1.2" + async-eventemitter "^0.2.2" + ethereumjs-account "^2.0.3" + ethereumjs-block "~2.2.0" + ethereumjs-common "^1.1.0" + ethereumjs-util "^6.0.0" + fake-merkle-patricia-tree "^1.0.1" + functional-red-black-tree "^1.0.1" + merkle-patricia-tree "^2.3.2" + rustbn.js "~0.2.0" + safe-buffer "^5.1.1" + ethereumjs-wallet@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.2.tgz#67244b6af3e8113b53d709124b25477b64aeccda" @@ -6642,6 +6668,14 @@ ethjs-unit@0.1.6: bn.js "4.11.6" number-to-bn "1.7.0" +ethjs-util@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== + dependencies: + is-hex-prefixed "1.0.0" + strip-hex-prefix "1.0.0" + ethjs-util@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.4.tgz#1c8b6879257444ef4d3f3fbbac2ded12cd997d93" @@ -7506,9 +7540,10 @@ ganache-cli@6.4.1: source-map-support "0.5.9" yargs "11.1.0" -ganache-core@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/ganache-core/-/ganache-core-2.3.3.tgz#e35c76d405f0ffba5c48621596fdcc38b0a03136" +ganache-core@^2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/ganache-core/-/ganache-core-2.5.3.tgz#8c6f21d820a694826082dfbb2dc59f834a6874fc" + integrity sha512-lTqPSxgWS5p4zJ8yNbhhsBXMPfcuV+jjnnYtsbJTph9L6InA6UkNpO0hhHuDFWF3GpblP3LjvWPpqW+X6pdZGg== dependencies: abstract-leveldown "3.0.0" async "2.6.1" @@ -7524,11 +7559,11 @@ ganache-core@^2.3.3: ethereumjs-block "2.1.0" ethereumjs-tx "1.3.7" ethereumjs-util "5.2.0" - ethereumjs-vm "2.4.0" + ethereumjs-vm "^2.6.0" heap "0.2.6" level-sublevel "6.6.4" levelup "3.1.1" - lodash "4.17.10" + lodash "4.17.11" merkle-patricia-tree "2.3.1" rlp "2.1.0" seedrandom "2.4.4" @@ -10627,9 +10662,9 @@ lodash.words@^3.0.0: dependencies: lodash._root "^3.0.0" -lodash@4.17.10, lodash@^4.17.10: - version "4.17.10" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" +lodash@4.17.11, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.3: + version "4.17.11" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" lodash@=4.17.4: version "4.17.4" @@ -10639,14 +10674,14 @@ lodash@^3.3.1, lodash@^3.6.0, lodash@^3.7.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.3: - version "4.17.11" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - lodash@^4.14.0, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1: version "4.17.5" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" +lodash@^4.17.10: + version "4.17.10" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" + lodash@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" @@ -11046,6 +11081,20 @@ merkle-patricia-tree@2.3.1, merkle-patricia-tree@^2.1.2: rlp "^2.0.0" semaphore ">=1.0.1" +merkle-patricia-tree@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" + integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== + dependencies: + async "^1.4.2" + ethereumjs-util "^5.0.0" + level-ws "0.0.0" + levelup "^1.2.1" + memdown "^1.0.0" + readable-stream "^2.0.0" + rlp "^2.0.0" + semaphore ">=1.0.1" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -13506,6 +13555,16 @@ react-dom@^16.3.2: object-assign "^4.1.1" prop-types "^15.6.0" +react-dom@^16.4.2: + version "16.8.4" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.4.tgz#1061a8e01a2b3b0c8160037441c3bf00a0e3bc48" + integrity sha512-Ob2wK7XG2tUDt7ps7LtLzGYYB6DXMCLj0G5fO6WeEICtT4/HdpOi7W/xLzZnR6RCG1tYza60nMdqtxzA8FaPJQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.13.4" + react-dom@^16.5.2: version "16.5.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.2.tgz#b69ee47aa20bab5327b2b9d7c1fe2a30f2cfa9d7" @@ -13809,6 +13868,16 @@ react@^16.3.2: object-assign "^4.1.1" prop-types "^15.6.0" +react@^16.4.2: + version "16.8.4" + resolved "https://registry.yarnpkg.com/react/-/react-16.8.4.tgz#fdf7bd9ae53f03a9c4cd1a371432c206be1c4768" + integrity sha512-0GQ6gFXfUH7aZcjGVymlPOASTuSjlQL4ZtVC5YKH+3JL6bBLCVO21DknzmaPlI90LN253ojj02nsapy+j7wIjg== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.13.4" + react@^16.5.2: version "16.5.2" resolved "https://registry.yarnpkg.com/react/-/react-16.5.2.tgz#19f6b444ed139baa45609eee6dc3d318b3895d42" @@ -14680,6 +14749,14 @@ schedule@^0.5.0: dependencies: object-assign "^4.1.1" +scheduler@^0.13.4: + version "0.13.4" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.4.tgz#8fef05e7a3580c76c0364d2df5e550e4c9140298" + integrity sha512-cvSOlRPxOHs5dAhP9yiS/6IDmVAVxmk33f0CtTJRkmUWcb1Us+t7b1wqdzoC0REw2muC9V5f1L/w5R5uKGaepA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + schema-utils@^0.4.4: version "0.4.7" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" From aea278c0226d7317256f206e51e9656a4459e756 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Sun, 17 Mar 2019 19:48:02 -0700 Subject: [PATCH 22/95] Update evmVersion to petersburg --- contracts/asset-proxy/compiler.json | 2 +- contracts/coordinator/compiler.json | 2 +- contracts/erc1155/compiler.json | 2 +- contracts/erc20/compiler.json | 2 +- contracts/erc721/compiler.json | 2 +- contracts/exchange-forwarder/compiler.json | 2 +- contracts/exchange-libs/compiler.json | 2 +- contracts/exchange/compiler.json | 2 +- contracts/extensions/compiler.json | 2 +- contracts/multisig/compiler.json | 2 +- contracts/utils/compiler.json | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/contracts/asset-proxy/compiler.json b/contracts/asset-proxy/compiler.json index 28f73402ca..e3b9ed00ec 100644 --- a/contracts/asset-proxy/compiler.json +++ b/contracts/asset-proxy/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/coordinator/compiler.json b/contracts/coordinator/compiler.json index 40b486d1a7..28e07105b9 100644 --- a/contracts/coordinator/compiler.json +++ b/contracts/coordinator/compiler.json @@ -3,7 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/erc1155/compiler.json b/contracts/erc1155/compiler.json index e545f46b08..46d62f1178 100644 --- a/contracts/erc1155/compiler.json +++ b/contracts/erc1155/compiler.json @@ -3,7 +3,7 @@ "contractsDir": "contracts", "useDockerisedSolc": true, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { diff --git a/contracts/erc20/compiler.json b/contracts/erc20/compiler.json index 714ee44df9..910c18689d 100644 --- a/contracts/erc20/compiler.json +++ b/contracts/erc20/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/erc721/compiler.json b/contracts/erc721/compiler.json index d7294e62ae..bfbcbb878e 100644 --- a/contracts/erc721/compiler.json +++ b/contracts/erc721/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/exchange-forwarder/compiler.json b/contracts/exchange-forwarder/compiler.json index deb76ddfa8..4be147db96 100644 --- a/contracts/exchange-forwarder/compiler.json +++ b/contracts/exchange-forwarder/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/exchange-libs/compiler.json b/contracts/exchange-libs/compiler.json index 8523e1155e..4abdfde931 100644 --- a/contracts/exchange-libs/compiler.json +++ b/contracts/exchange-libs/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/exchange/compiler.json b/contracts/exchange/compiler.json index dfbf86a0bc..95bbd3bee4 100644 --- a/contracts/exchange/compiler.json +++ b/contracts/exchange/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/extensions/compiler.json b/contracts/extensions/compiler.json index 9e8471e32b..534f4a93fd 100644 --- a/contracts/extensions/compiler.json +++ b/contracts/extensions/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/multisig/compiler.json b/contracts/multisig/compiler.json index 2395d7c8ff..8b024af976 100644 --- a/contracts/multisig/compiler.json +++ b/contracts/multisig/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/utils/compiler.json b/contracts/utils/compiler.json index 7dd36ba4d9..ce996091e8 100644 --- a/contracts/utils/compiler.json +++ b/contracts/utils/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "byzantium", + "evmVersion": "petersburg", "optimizer": { "enabled": true, "runs": 1000000, From caf286b8cbc4e31253a0b055f2203bbbcd48e3ee Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Sun, 17 Mar 2019 20:01:48 -0700 Subject: [PATCH 23/95] Update CHANGELOGs --- contracts/asset-proxy/CHANGELOG.json | 4 ---- contracts/coordinator/CHANGELOG.json | 14 +++++++++++++- contracts/erc20/CHANGELOG.json | 4 ---- contracts/erc721/CHANGELOG.json | 4 ---- contracts/exchange-forwarder/CHANGELOG.json | 4 ---- contracts/exchange-libs/CHANGELOG.json | 4 ---- contracts/exchange/CHANGELOG.json | 4 ---- contracts/extensions/CHANGELOG.json | 4 ---- contracts/multisig/CHANGELOG.json | 4 ---- contracts/utils/CHANGELOG.json | 4 ---- packages/subproviders/CHANGELOG.json | 9 +++++++++ packages/web3-wrapper/CHANGELOG.json | 9 +++++++++ 12 files changed, 31 insertions(+), 37 deletions(-) diff --git a/contracts/asset-proxy/CHANGELOG.json b/contracts/asset-proxy/CHANGELOG.json index d4a8083933..fc665e19a1 100644 --- a/contracts/asset-proxy/CHANGELOG.json +++ b/contracts/asset-proxy/CHANGELOG.json @@ -2,10 +2,6 @@ { "version": "2.0.0", "changes": [ - { - "note": "Set evmVersion to byzantium", - "pr": 1678 - }, { "note": "Do not reexport external dependencies", "pr": 1682 diff --git a/contracts/coordinator/CHANGELOG.json b/contracts/coordinator/CHANGELOG.json index 9aae87f350..eb06267e8d 100644 --- a/contracts/coordinator/CHANGELOG.json +++ b/contracts/coordinator/CHANGELOG.json @@ -1,6 +1,6 @@ [ { - "version": "0.0.1", + "version": "1.0.0", "changes": [ { "note": "Created Coordinator package" @@ -12,6 +12,18 @@ { "note": "Add `SignatureType.Invalid`", "pr": 1705 + }, + { +<<<<<<< HEAD + "note": "Add `SignatureType.Invalid`", + "pr": 1705 + }, + { + "note": "Set `evmVersion` to `petersburg`", +======= + "note": "Set `evmVersion` to `constantinople`", +>>>>>>> 4a3e9e8f4... fgrtre + "pr": 1707 } ] } diff --git a/contracts/erc20/CHANGELOG.json b/contracts/erc20/CHANGELOG.json index 7d2d6d8218..87a442ea37 100644 --- a/contracts/erc20/CHANGELOG.json +++ b/contracts/erc20/CHANGELOG.json @@ -2,10 +2,6 @@ { "version": "2.0.0", "changes": [ - { - "note": "Set evmVersion to byzantium", - "pr": 1678 - }, { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 diff --git a/contracts/erc721/CHANGELOG.json b/contracts/erc721/CHANGELOG.json index f7cfc8b6b5..91d3674e16 100644 --- a/contracts/erc721/CHANGELOG.json +++ b/contracts/erc721/CHANGELOG.json @@ -2,10 +2,6 @@ { "version": "2.0.0", "changes": [ - { - "note": "Set evmVersion to byzantium", - "pr": 1678 - }, { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 diff --git a/contracts/exchange-forwarder/CHANGELOG.json b/contracts/exchange-forwarder/CHANGELOG.json index 50d4375ca1..1bebb14105 100644 --- a/contracts/exchange-forwarder/CHANGELOG.json +++ b/contracts/exchange-forwarder/CHANGELOG.json @@ -2,10 +2,6 @@ { "version": "2.0.0", "changes": [ - { - "note": "Set evmVersion to byzantium", - "pr": 1678 - }, { "note": "Do not reexport external dependencies", "pr": 1682 diff --git a/contracts/exchange-libs/CHANGELOG.json b/contracts/exchange-libs/CHANGELOG.json index 23d12e531d..19f4222093 100644 --- a/contracts/exchange-libs/CHANGELOG.json +++ b/contracts/exchange-libs/CHANGELOG.json @@ -2,10 +2,6 @@ { "version": "2.0.0", "changes": [ - { - "note": "Set evmVersion to byzantium", - "pr": 1678 - }, { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 diff --git a/contracts/exchange/CHANGELOG.json b/contracts/exchange/CHANGELOG.json index 76bad01b67..f5ec62d609 100644 --- a/contracts/exchange/CHANGELOG.json +++ b/contracts/exchange/CHANGELOG.json @@ -2,10 +2,6 @@ { "version": "2.0.0", "changes": [ - { - "note": "Set evmVersion to byzantium", - "pr": 1678 - }, { "note": "Do not reexport external dependencies", "pr": 1682 diff --git a/contracts/extensions/CHANGELOG.json b/contracts/extensions/CHANGELOG.json index 88f6fc4628..337addf6af 100644 --- a/contracts/extensions/CHANGELOG.json +++ b/contracts/extensions/CHANGELOG.json @@ -2,10 +2,6 @@ { "version": "3.0.0", "changes": [ - { - "note": "Set evmVersion to byzantium", - "pr": 1678 - }, { "note": "Do not reexport external dependencies", "pr": 1682 diff --git a/contracts/multisig/CHANGELOG.json b/contracts/multisig/CHANGELOG.json index de02c953b0..9c224349a3 100644 --- a/contracts/multisig/CHANGELOG.json +++ b/contracts/multisig/CHANGELOG.json @@ -2,10 +2,6 @@ { "version": "3.0.0", "changes": [ - { - "note": "Set evmVersion to byzantium", - "pr": 1678 - }, { "note": "Do not reexport external dependencies", "pr": 1682 diff --git a/contracts/utils/CHANGELOG.json b/contracts/utils/CHANGELOG.json index a3787b8dbc..ecec7db642 100644 --- a/contracts/utils/CHANGELOG.json +++ b/contracts/utils/CHANGELOG.json @@ -2,10 +2,6 @@ { "version": "3.0.0", "changes": [ - { - "note": "Set evmVersion to byzantium", - "pr": 1678 - }, { "note": "Optimize loops in LibAddressArray", "pr": 1668 diff --git a/packages/subproviders/CHANGELOG.json b/packages/subproviders/CHANGELOG.json index cda828df83..7851c865f0 100644 --- a/packages/subproviders/CHANGELOG.json +++ b/packages/subproviders/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "4.0.3", + "changes": [ + { + "note": "Update ganache-core to 2.5.3", + "pr": 1707 + } + ] + }, { "timestamp": 1551479279, "version": "4.0.2", diff --git a/packages/web3-wrapper/CHANGELOG.json b/packages/web3-wrapper/CHANGELOG.json index 6f92903073..216e058d70 100644 --- a/packages/web3-wrapper/CHANGELOG.json +++ b/packages/web3-wrapper/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "6.0.3", + "changes": [ + { + "note": "Update ganache-core to 2.5.3", + "pr": 1707 + } + ] + }, { "timestamp": 1551479279, "version": "6.0.2", From b008fabdacb4171f25fa36871903f6de071cd72d Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Sun, 17 Mar 2019 20:32:17 -0700 Subject: [PATCH 24/95] Change petersburg to constantinople --- contracts/asset-proxy/compiler.json | 2 +- contracts/coordinator/CHANGELOG.json | 8 -------- contracts/coordinator/compiler.json | 2 +- contracts/erc1155/compiler.json | 2 +- contracts/erc20/compiler.json | 2 +- contracts/erc721/compiler.json | 2 +- contracts/exchange-forwarder/compiler.json | 2 +- contracts/exchange-libs/compiler.json | 2 +- contracts/exchange/compiler.json | 2 +- contracts/extensions/compiler.json | 2 +- contracts/multisig/compiler.json | 2 +- contracts/utils/compiler.json | 2 +- 12 files changed, 11 insertions(+), 19 deletions(-) diff --git a/contracts/asset-proxy/compiler.json b/contracts/asset-proxy/compiler.json index e3b9ed00ec..6bf9c16c56 100644 --- a/contracts/asset-proxy/compiler.json +++ b/contracts/asset-proxy/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/coordinator/CHANGELOG.json b/contracts/coordinator/CHANGELOG.json index eb06267e8d..fc1a3f7f0d 100644 --- a/contracts/coordinator/CHANGELOG.json +++ b/contracts/coordinator/CHANGELOG.json @@ -14,15 +14,7 @@ "pr": 1705 }, { -<<<<<<< HEAD - "note": "Add `SignatureType.Invalid`", - "pr": 1705 - }, - { - "note": "Set `evmVersion` to `petersburg`", -======= "note": "Set `evmVersion` to `constantinople`", ->>>>>>> 4a3e9e8f4... fgrtre "pr": 1707 } ] diff --git a/contracts/coordinator/compiler.json b/contracts/coordinator/compiler.json index 28e07105b9..8df8f3cd33 100644 --- a/contracts/coordinator/compiler.json +++ b/contracts/coordinator/compiler.json @@ -3,7 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/erc1155/compiler.json b/contracts/erc1155/compiler.json index 46d62f1178..2c3318284a 100644 --- a/contracts/erc1155/compiler.json +++ b/contracts/erc1155/compiler.json @@ -3,7 +3,7 @@ "contractsDir": "contracts", "useDockerisedSolc": true, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { diff --git a/contracts/erc20/compiler.json b/contracts/erc20/compiler.json index 910c18689d..c84caf47f1 100644 --- a/contracts/erc20/compiler.json +++ b/contracts/erc20/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/erc721/compiler.json b/contracts/erc721/compiler.json index bfbcbb878e..a3b8f417d5 100644 --- a/contracts/erc721/compiler.json +++ b/contracts/erc721/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/exchange-forwarder/compiler.json b/contracts/exchange-forwarder/compiler.json index 4be147db96..d49cd34b7d 100644 --- a/contracts/exchange-forwarder/compiler.json +++ b/contracts/exchange-forwarder/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/exchange-libs/compiler.json b/contracts/exchange-libs/compiler.json index 4abdfde931..fed143589c 100644 --- a/contracts/exchange-libs/compiler.json +++ b/contracts/exchange-libs/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/exchange/compiler.json b/contracts/exchange/compiler.json index 95bbd3bee4..c1f8663d37 100644 --- a/contracts/exchange/compiler.json +++ b/contracts/exchange/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/extensions/compiler.json b/contracts/extensions/compiler.json index 534f4a93fd..bf3756c15b 100644 --- a/contracts/extensions/compiler.json +++ b/contracts/extensions/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/multisig/compiler.json b/contracts/multisig/compiler.json index 8b024af976..942df6bb25 100644 --- a/contracts/multisig/compiler.json +++ b/contracts/multisig/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000, diff --git a/contracts/utils/compiler.json b/contracts/utils/compiler.json index ce996091e8..4632bf57b7 100644 --- a/contracts/utils/compiler.json +++ b/contracts/utils/compiler.json @@ -4,7 +4,7 @@ "useDockerisedSolc": true, "isOfflineMode": false, "compilerSettings": { - "evmVersion": "petersburg", + "evmVersion": "constantinople", "optimizer": { "enabled": true, "runs": 1000000, From a401b8f475b20d20fed516b7c02dbd9a6b97eb36 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Mon, 18 Mar 2019 13:07:19 -0700 Subject: [PATCH 25/95] Fix web3wrapper node version test --- packages/web3-wrapper/test/web3_wrapper_test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web3-wrapper/test/web3_wrapper_test.ts b/packages/web3-wrapper/test/web3_wrapper_test.ts index c4ee91d3dc..54f77d75b6 100644 --- a/packages/web3-wrapper/test/web3_wrapper_test.ts +++ b/packages/web3-wrapper/test/web3_wrapper_test.ts @@ -35,7 +35,7 @@ describe('Web3Wrapper tests', () => { describe('#getNodeVersionAsync', () => { it('gets the node version', async () => { const nodeVersion = await web3Wrapper.getNodeVersionAsync(); - const NODE_VERSION = 'EthereumJS TestRPC/v2.3.3/ethereum-js'; + const NODE_VERSION = 'EthereumJS TestRPC/v2.5.3/ethereum-js'; expect(nodeVersion).to.be.equal(NODE_VERSION); }); }); From 939a5b477a2df32ddda837a3a23127317b3aa6eb Mon Sep 17 00:00:00 2001 From: fragosti Date: Mon, 18 Mar 2019 14:51:51 -0700 Subject: [PATCH 26/95] Run linter --- packages/website/ts/pages/about/team.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/website/ts/pages/about/team.tsx b/packages/website/ts/pages/about/team.tsx index 369dfa9ddf..d93bdf9bc4 100644 --- a/packages/website/ts/pages/about/team.tsx +++ b/packages/website/ts/pages/about/team.tsx @@ -163,7 +163,6 @@ const team: TeamMember[] = [ name: 'Daniel Pyrathon', title: 'engineer', }, - ]; const advisors: TeamMember[] = [ From 2fbe0aed32cef8da9aa834a559a60ea34c76ad0d Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Tue, 19 Mar 2019 14:53:43 +0100 Subject: [PATCH 27/95] Fix Python tests --- .../src/zero_ex/contract_addresses/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py b/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py index 25984d2d70..2206e145e5 100644 --- a/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py +++ b/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py @@ -15,6 +15,8 @@ class ContractAddresses(NamedTuple): # noqa asset_proxy_owner: str forwarder: str order_validator: str + coordinator_registry: str + coordinator: str class NetworkId(Enum): From 5063c17e6bfbef396a121eb3b1a2eecee0fb488f Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Tue, 5 Mar 2019 08:52:33 -0800 Subject: [PATCH 28/95] ERC1155 Asset Data tests + types --- packages/order-utils/src/asset_data_utils.ts | 3 +++ packages/order-utils/test/asset_data_utils_test.ts | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/packages/order-utils/src/asset_data_utils.ts b/packages/order-utils/src/asset_data_utils.ts index 2acf57d5f6..1dc6922365 100644 --- a/packages/order-utils/src/asset_data_utils.ts +++ b/packages/order-utils/src/asset_data_utils.ts @@ -5,6 +5,9 @@ import { ERC1155AssetDataNoProxyId, ERC20AssetData, ERC721AssetData, + ERC1155AssetData, + ERC1155AssetDataAbi, + ERC1155AssetDataNoProxyId, MultiAssetData, MultiAssetDataWithRecursiveDecoding, SingleAssetData, diff --git a/packages/order-utils/test/asset_data_utils_test.ts b/packages/order-utils/test/asset_data_utils_test.ts index 2634e7f595..d0206b1aa0 100644 --- a/packages/order-utils/test/asset_data_utils_test.ts +++ b/packages/order-utils/test/asset_data_utils_test.ts @@ -64,7 +64,11 @@ describe('assetDataUtils', () => { KNOWN_ERC1155_ENCODING.tokenAddress, KNOWN_ERC1155_ENCODING.tokenIds, KNOWN_ERC1155_ENCODING.tokenValues, +<<<<<<< HEAD KNOWN_ERC1155_ENCODING.callbackData, +======= + KNOWN_ERC1155_ENCODING.callbackData +>>>>>>> 5bddc5795... ERC1155 Asset Data tests + types ); expect(assetData).to.equal(KNOWN_ERC1155_ENCODING.assetData); }); From 82b6dad1bad503a44d913e14c6240343f54fbdd0 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Mon, 4 Mar 2019 18:12:45 -0800 Subject: [PATCH 29/95] Exchange Integration Tests --- contracts/exchange/test/core.ts | 399 ++++++++++++++++++++++++++++++++ 1 file changed, 399 insertions(+) diff --git a/contracts/exchange/test/core.ts b/contracts/exchange/test/core.ts index 7acb4e2aba..44961576a2 100644 --- a/contracts/exchange/test/core.ts +++ b/contracts/exchange/test/core.ts @@ -5,6 +5,7 @@ import { ERC721ProxyContract, ERC721Wrapper, MultiAssetProxyContract, + ERC1155ProxyWrapper, } from '@0x/contracts-asset-proxy'; import { artifacts as erc20Artifacts, @@ -26,6 +27,7 @@ import { txDefaults, web3Wrapper, } from '@0x/contracts-test-utils'; +import { ERC1155MintableContract, DummyERC1155ReceiverBatchTokenReceivedEventArgs } from '@0x/contracts-erc1155'; import { BlockchainLifecycle } from '@0x/dev-utils'; import { assetDataUtils, orderHashUtils } from '@0x/order-utils'; import { RevertReason, SignatureType, SignedOrder } from '@0x/types'; @@ -44,6 +46,8 @@ import { ReentrantERC20TokenContract, TestStaticCallReceiverContract, } from '../src'; +import { Erc1155Wrapper, ERC1155Contract } from '../../erc1155/lib/src'; +import { Exception } from 'handlebars'; chaiSetup.configure(); const expect = chai.expect; @@ -64,19 +68,26 @@ describe('Exchange core', () => { let exchange: ExchangeContract; let erc20Proxy: ERC20ProxyContract; let erc721Proxy: ERC721ProxyContract; + let erc1155Proxy: ERC721ProxyContract; let multiAssetProxy: MultiAssetProxyContract; let maliciousWallet: TestStaticCallReceiverContract; let maliciousValidator: TestStaticCallReceiverContract; + let erc1155Contract: ERC1155MintableContract; let signedOrder: SignedOrder; let erc20Balances: ERC20BalancesByOwner; let exchangeWrapper: ExchangeWrapper; let erc20Wrapper: ERC20Wrapper; let erc721Wrapper: ERC721Wrapper; + let erc1155Wrapper: Erc1155Wrapper; + let erc1155ProxyWrapper: ERC1155ProxyWrapper; let orderFactory: OrderFactory; let erc721MakerAssetIds: BigNumber[]; let erc721TakerAssetIds: BigNumber[]; + let erc1155FungibleTokens: BigNumber[]; + let erc1155NonFungibleTokensOwnedByMaker: BigNumber[]; + let erc1155NonFungibleTokensOwnedByTaker: BigNumber[]; let defaultMakerAssetAddress: string; let defaultTakerAssetAddress: string; @@ -93,6 +104,7 @@ describe('Exchange core', () => { erc20Wrapper = new ERC20Wrapper(provider, usedAddresses, owner); erc721Wrapper = new ERC721Wrapper(provider, usedAddresses, owner); + erc1155ProxyWrapper = new ERC1155ProxyWrapper(provider, usedAddresses, owner); // Deploy AssetProxies, Exchange, tokens, and malicious contracts erc20Proxy = await erc20Wrapper.deployProxyAsync(); @@ -108,6 +120,9 @@ describe('Exchange core', () => { constants.DUMMY_TOKEN_DECIMALS, ); [erc721Token] = await erc721Wrapper.deployDummyTokensAsync(); + erc1155Proxy = await erc1155ProxyWrapper.deployProxyAsync(); + [erc1155Wrapper] = await erc1155ProxyWrapper.deployDummyTokensAsync(); + erc1155Contract = erc1155Wrapper.getContract(); exchange = await ExchangeContract.deployFrom0xArtifactAsync( artifacts.Exchange, provider, @@ -154,6 +169,20 @@ describe('Exchange core', () => { constants.AWAIT_TRANSACTION_MINED_MS, ); + // Configure ERC1155Proxy + await web3Wrapper.awaitTransactionSuccessAsync( + await erc1155Proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, { + from: owner, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + await web3Wrapper.awaitTransactionSuccessAsync( + await erc1155Proxy.addAuthorizedAddress.sendTransactionAsync(multiAssetProxy.address, { + from: owner, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + // Configure MultiAssetProxy await web3Wrapper.awaitTransactionSuccessAsync( await multiAssetProxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, { @@ -178,6 +207,7 @@ describe('Exchange core', () => { exchangeWrapper = new ExchangeWrapper(exchange, provider); await exchangeWrapper.registerAssetProxyAsync(erc20Proxy.address, owner); await exchangeWrapper.registerAssetProxyAsync(erc721Proxy.address, owner); + await exchangeWrapper.registerAssetProxyAsync(erc1155Proxy.address, owner); await exchangeWrapper.registerAssetProxyAsync(multiAssetProxy.address, owner); // Configure ERC20 tokens @@ -189,6 +219,21 @@ describe('Exchange core', () => { erc721MakerAssetIds = erc721Balances[makerAddress][erc721Token.address]; erc721TakerAssetIds = erc721Balances[takerAddress][erc721Token.address]; + // Configure ERC1155 tokens + await erc1155ProxyWrapper.setBalancesAndAllowancesAsync(); + erc1155FungibleTokens = erc1155ProxyWrapper.getFungibleTokenIds(); + const nonFungibleTokens = erc1155ProxyWrapper.getNonFungibleTokenIds(); + const tokenBalances = await erc1155ProxyWrapper.getBalancesAsync(); + erc1155NonFungibleTokensOwnedByMaker = []; + erc1155NonFungibleTokensOwnedByTaker = []; + _.each(nonFungibleTokens, (nonFungibleToken: BigNumber) => { + const nonFungibleTokenAsString = nonFungibleToken.toString(); + const nonFungibleTokenHeldByMaker = tokenBalances.nonFungible[makerAddress][erc1155Contract.address][nonFungibleTokenAsString][0]; + erc1155NonFungibleTokensOwnedByMaker.push(nonFungibleTokenHeldByMaker); + const nonFungibleTokenHeldByTaker = tokenBalances.nonFungible[takerAddress][erc1155Contract.address][nonFungibleTokenAsString][0]; + erc1155NonFungibleTokensOwnedByTaker.push(nonFungibleTokenHeldByTaker); + }); + // Configure order defaults defaultMakerAssetAddress = erc20TokenA.address; defaultTakerAssetAddress = erc20TokenB.address; @@ -1041,6 +1086,360 @@ describe('Exchange core', () => { }); }); + describe.only('Testing exchange of erc1155 assets', () => { + it('should allow a single fungible erc1155 asset to be exchanged for another', async () => { + // setup test parameters + const tokenHolders = [makerAddress, takerAddress]; + const makerAssetsToTransfer = erc1155FungibleTokens.slice(0, 1); + const takerAssetsToTransfer = erc1155FungibleTokens.slice(1, 2); + const makerValuesToTransfer = [new BigNumber(500)]; + const takerValuesToTransfer = [new BigNumber(200)]; + const tokensToTransfer = makerAssetsToTransfer.concat(takerAssetsToTransfer); + const makerAssetAmount = new BigNumber(1); + const takerAssetAmount = new BigNumber(1); + const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => {return value.times(makerAssetAmount)}); + const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => {return value.times(takerAssetAmount)}); + const receiverCallbackData = '0x'; + const makerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, makerAssetsToTransfer, makerValuesToTransfer, receiverCallbackData); + const takerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, takerAssetsToTransfer, takerValuesToTransfer, receiverCallbackData); + signedOrder = await orderFactory.newSignedOrderAsync({ + makerAssetData, + takerAssetData, + makerAssetAmount, + takerAssetAmount, + makerFee: constants.ZERO_AMOUNT, + takerFee: constants.ZERO_AMOUNT, + }); + const takerAssetFillAmount = new BigNumber(1); + // check balances before transfer + const expectedInitialBalances = [ + // makerAddress / makerToken + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // makerAddress / takerToken + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / makerToken + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / takerToken + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // execute transfer + await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress, { + takerAssetFillAmount, + }); + // check balances after transfer + const expectedFinalBalances = [ + // makerAddress / makerToken + expectedInitialBalances[0].minus(totalMakerValuesTransferred[0]), + // makerAddress / takerToken + expectedInitialBalances[1].plus(totalTakerValuesTransferred[0]), + // takerAddress / makerToken + expectedInitialBalances[2].plus(totalMakerValuesTransferred[0]), + // takerAddress / takerToken + expectedInitialBalances[3].minus(totalTakerValuesTransferred[0]), + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); + it('should allow a single non-fungible erc1155 asset to be exchanged for another', async () => { + // setup test parameters + const tokenHolders = [makerAddress, takerAddress]; + const makerAssetsToTransfer = erc1155NonFungibleTokensOwnedByMaker.slice(0, 1); + const takerAssetsToTransfer = erc1155NonFungibleTokensOwnedByTaker.slice(0, 1); + const makerValuesToTransfer = [new BigNumber(1)]; + const takerValuesToTransfer = [new BigNumber(1)]; + const tokensToTransfer = makerAssetsToTransfer.concat(takerAssetsToTransfer); + const makerAssetAmount = new BigNumber(1); + const takerAssetAmount = new BigNumber(1); + const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => {return value.times(makerAssetAmount)}); + const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => {return value.times(takerAssetAmount)}); + const receiverCallbackData = '0x'; + const makerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, makerAssetsToTransfer, makerValuesToTransfer, receiverCallbackData); + const takerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, takerAssetsToTransfer, takerValuesToTransfer, receiverCallbackData); + signedOrder = await orderFactory.newSignedOrderAsync({ + makerAssetData, + takerAssetData, + makerAssetAmount, + takerAssetAmount, + makerFee: constants.ZERO_AMOUNT, + takerFee: constants.ZERO_AMOUNT, + }); + const takerAssetFillAmount = new BigNumber(1); + // check balances before transfer + const nftOwnerBalance = new BigNumber(1); + const nftNotOwnerBalance = new BigNumber(0); + const expectedInitialBalances = [ + // makerAddress / makerToken + nftOwnerBalance, + // makerAddress / takerToken + nftNotOwnerBalance, + // takerAddress / makerToken + nftNotOwnerBalance, + // takerAddress / takerToken + nftOwnerBalance, + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // execute transfer + await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress, { + takerAssetFillAmount, + }); + // check balances after transfer + const expectedFinalBalances = [ + // makerAddress / makerToken + expectedInitialBalances[0].minus(totalMakerValuesTransferred[0]), + // makerAddress / takerToken + expectedInitialBalances[1].plus(totalTakerValuesTransferred[0]), + // takerAddress / makerToken + expectedInitialBalances[2].plus(totalMakerValuesTransferred[0]), + // takerAddress / takerToken + expectedInitialBalances[3].minus(totalTakerValuesTransferred[0]), + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); + it('should allow multiple erc1155 assets to be exchanged for a single asset', async () => { + // setup test parameters + const tokenHolders = [makerAddress, takerAddress]; + const makerAssetsToTransfer = erc1155FungibleTokens.slice(0, 3); + const takerAssetsToTransfer = erc1155NonFungibleTokensOwnedByTaker.slice(0, 1); + const makerValuesToTransfer = [new BigNumber(500), new BigNumber(700), new BigNumber(900)]; + const takerValuesToTransfer = [new BigNumber(1)]; + const tokensToTransfer = makerAssetsToTransfer.concat(takerAssetsToTransfer); + const makerAssetAmount = new BigNumber(1); + const takerAssetAmount = new BigNumber(1); + const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => {return value.times(makerAssetAmount)}); + const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => {return value.times(takerAssetAmount)}); + const receiverCallbackData = '0x'; + const makerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, makerAssetsToTransfer, makerValuesToTransfer, receiverCallbackData); + const takerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, takerAssetsToTransfer, takerValuesToTransfer, receiverCallbackData); + signedOrder = await orderFactory.newSignedOrderAsync({ + makerAssetData, + takerAssetData, + makerAssetAmount, + takerAssetAmount, + makerFee: constants.ZERO_AMOUNT, + takerFee: constants.ZERO_AMOUNT, + }); + const takerAssetFillAmount = new BigNumber(1); + // check balances before transfer + const nftOwnerBalance = new BigNumber(1); + const nftNotOwnerBalance = new BigNumber(0); + const expectedInitialBalances = [ + // makerAddress / makerToken[0] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // makerAddress / makerToken[1] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // makerAddress / makerToken[2] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // makerAddress / takerToken + nftNotOwnerBalance, + // takerAddress / makerToken[0] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / makerToken[1] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / makerToken[2] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / takerToken + nftOwnerBalance, + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // execute transfer + await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress, { + takerAssetFillAmount, + }); + // check balances after transfer + const expectedFinalBalances = [ + // makerAddress / makerToken[0] + expectedInitialBalances[0].minus(totalMakerValuesTransferred[0]), + // makerAddress / makerToken[1] + expectedInitialBalances[1].minus(totalMakerValuesTransferred[1]), + // makerAddress / makerToken[2] + expectedInitialBalances[2].minus(totalMakerValuesTransferred[2]), + // makerAddress / takerToken + expectedInitialBalances[3].plus(totalTakerValuesTransferred[0]), + // takerAddress / makerToken[0] + expectedInitialBalances[4].plus(totalMakerValuesTransferred[0]), + // takerAddress / makerToken[1] + expectedInitialBalances[5].plus(totalMakerValuesTransferred[1]), + // takerAddress / makerToken[2] + expectedInitialBalances[6].plus(totalMakerValuesTransferred[2]), + // takerAddress / takerToken + expectedInitialBalances[7].minus(totalTakerValuesTransferred[0]), + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); + it('should allow multiple erc1155 assets to be exchanged for multiple erc1155 assets, mixed fungible/non-fungible', async () => { + // setup test parameters + // the maker is trading two fungibles & one non-fungible + // the taker is trading one fungible & two non-fungibles + const tokenHolders = [makerAddress, takerAddress]; + const makerFungibleAssetsToTransfer = erc1155FungibleTokens.slice(0, 2); + const makerNonFungibleAssetsToTransfer = erc1155NonFungibleTokensOwnedByMaker.slice(0, 1); + const makerAssetsToTransfer = makerFungibleAssetsToTransfer.concat(makerNonFungibleAssetsToTransfer); + const takerFungibleAssetsToTransfer = erc1155FungibleTokens.slice(2, 3); + const takerNonFungibleAssetsToTransfer = erc1155NonFungibleTokensOwnedByTaker.slice(0, 2); + const takerAssetsToTransfer = takerFungibleAssetsToTransfer.concat(takerNonFungibleAssetsToTransfer); + const makerValuesToTransfer = [new BigNumber(500), new BigNumber(700), new BigNumber(1)]; + const takerValuesToTransfer = [new BigNumber(900), new BigNumber(1), new BigNumber(1)]; + const tokensToTransfer = makerAssetsToTransfer.concat(takerAssetsToTransfer); + const makerAssetAmount = new BigNumber(1); + const takerAssetAmount = new BigNumber(1); + const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => {return value.times(makerAssetAmount)}); + const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => {return value.times(takerAssetAmount)}); + const receiverCallbackData = '0x'; + const makerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, makerAssetsToTransfer, makerValuesToTransfer, receiverCallbackData); + const takerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, takerAssetsToTransfer, takerValuesToTransfer, receiverCallbackData); + signedOrder = await orderFactory.newSignedOrderAsync({ + makerAssetData, + takerAssetData, + makerAssetAmount, + takerAssetAmount, + makerFee: constants.ZERO_AMOUNT, + takerFee: constants.ZERO_AMOUNT, + }); + const takerAssetFillAmount = new BigNumber(1); + // check balances before transfer + const nftOwnerBalance = new BigNumber(1); + const nftNotOwnerBalance = new BigNumber(0); + const expectedInitialBalances = [ + // makerAddress / makerToken[0] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // makerAddress / makerToken[1] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // makerAddress / makerToken[2] + nftOwnerBalance, + // makerAddress / takerToken[0] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // makerAddress / takerToken[1] + nftNotOwnerBalance, + // makerAddress / takerToken[2] + nftNotOwnerBalance, + // takerAddress / makerToken[0] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / makerToken[1] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / makerToken[2] + nftNotOwnerBalance, + // takerAddress / takerToken[0] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / takerToken[1] + nftOwnerBalance, + // takerAddress / takerToken[2] + nftOwnerBalance, + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // execute transfer + await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress, { + takerAssetFillAmount, + }); + // check balances after transfer + const expectedFinalBalances = [ + // makerAddress / makerToken[0] + expectedInitialBalances[0].minus(totalMakerValuesTransferred[0]), + // makerAddress / makerToken[1] + expectedInitialBalances[1].minus(totalMakerValuesTransferred[1]), + // makerAddress / makerToken[2] + expectedInitialBalances[2].minus(totalMakerValuesTransferred[2]), + // makerAddress / takerToken[0] + expectedInitialBalances[3].plus(totalTakerValuesTransferred[0]), + // makerAddress / takerToken[1] + expectedInitialBalances[4].plus(totalTakerValuesTransferred[1]), + // makerAddress / takerToken[2] + expectedInitialBalances[5].plus(totalTakerValuesTransferred[2]), + // takerAddress / makerToken[0] + expectedInitialBalances[6].plus(totalMakerValuesTransferred[0]), + // takerAddress / makerToken[1] + expectedInitialBalances[7].plus(totalMakerValuesTransferred[1]), + // takerAddress / makerToken[2] + expectedInitialBalances[8].plus(totalMakerValuesTransferred[2]), + // takerAddress / takerToken[0] + expectedInitialBalances[9].minus(totalTakerValuesTransferred[0]), + // takerAddress / takerToken[1] + expectedInitialBalances[10].minus(totalTakerValuesTransferred[1]), + // takerAddress / takerToken[2] + expectedInitialBalances[11].minus(totalTakerValuesTransferred[2]), + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); + it('should allow an order exchanging erc1155 assets to be partially filled', async () => { + // NOTICE: + // As-per the eip1155 standard, there is no way to distinguish between a fungible or non-fungible erc1155 assets. + // Hence we cannot force partial fills to fail if there is a non-fungible asset (which should be fill or kill). + // We considered encoding whether an asset is fungible/non-fungible in erc1155 assetData, but + // this is no more robust than a simple check by the client. Enforcing this at the smart contract level + // is something that could be done with the upcoming static call proxy. + // + // setup test parameters + // the maker is trading two fungibles and the taker is trading one fungible + // note that this will result in a partial fill because the `takerAssetAmount` + // less than the `takerAssetAmount` of the order. + const takerAssetFillAmount = new BigNumber(6); + const tokenHolders = [makerAddress, takerAddress]; + const makerAssetsToTransfer = erc1155FungibleTokens.slice(0, 2); + const takerAssetsToTransfer = erc1155FungibleTokens.slice(2, 3); + const makerValuesToTransfer = [new BigNumber(500), new BigNumber(700)]; + const takerValuesToTransfer = [new BigNumber(900)]; + const tokensToTransfer = makerAssetsToTransfer.concat(takerAssetsToTransfer); + const makerAssetAmount = new BigNumber(10); + const takerAssetAmount = new BigNumber(20); + const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => {return value.times(makerAssetAmount).times(takerAssetFillAmount).dividedToIntegerBy(takerAssetAmount)}); + const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => {return value.times(takerAssetAmount).times(takerAssetFillAmount).dividedToIntegerBy(takerAssetAmount)}); + const receiverCallbackData = '0x'; + const makerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, makerAssetsToTransfer, makerValuesToTransfer, receiverCallbackData); + const takerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, takerAssetsToTransfer, takerValuesToTransfer, receiverCallbackData); + signedOrder = await orderFactory.newSignedOrderAsync({ + makerAssetData, + takerAssetData, + makerAssetAmount, + takerAssetAmount, + makerFee: constants.ZERO_AMOUNT, + takerFee: constants.ZERO_AMOUNT, + }); + // check balances before transfer + const expectedInitialBalances = [ + // makerAddress / makerToken[0] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // makerAddress / makerToken[1] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // makerAddress / takerToken[0] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / makerToken[0] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / makerToken[1] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // takerAddress / takerToken[0] + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // execute transfer + await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress, { + takerAssetFillAmount, + }); + // check balances after transfer + const expectedFinalBalances = [ + // makerAddress / makerToken[0] + expectedInitialBalances[0].minus(totalMakerValuesTransferred[0]), + // makerAddress / makerToken[1] + expectedInitialBalances[1].minus(totalMakerValuesTransferred[1]), + // makerAddress / takerToken[0] + expectedInitialBalances[2].plus(totalTakerValuesTransferred[0]), + // takerAddress / makerToken[0] + expectedInitialBalances[3].plus(totalMakerValuesTransferred[0]), + // takerAddress / makerToken[1] + expectedInitialBalances[4].plus(totalMakerValuesTransferred[1]), + // takerAddress / takerToken[0] + expectedInitialBalances[5].minus(totalTakerValuesTransferred[0]), + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + // check that the order is partially filled + const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder); + const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder); + const expectedTakerAssetFilledAmount = takerAssetFillAmount; + const expectedOrderStatus = OrderStatus.Fillable; + expect(orderInfo.orderHash).to.be.equal(expectedOrderHash); + expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount); + expect(orderInfo.orderStatus).to.equal(expectedOrderStatus); + }); + }); + describe('getOrderInfo', () => { beforeEach(async () => { signedOrder = await orderFactory.newSignedOrderAsync(); From 31dbca7efcd0746961a1d9fe97bcebb2b41a42d1 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Thu, 7 Mar 2019 15:47:54 -0800 Subject: [PATCH 30/95] More integration tests for ERC1155 <> Multi Asset Proxy encoding / decoding --- contracts/exchange/test/core.ts | 144 ++++++++++++++---- .../order-utils/test/asset_data_utils_test.ts | 79 +++++++--- 2 files changed, 170 insertions(+), 53 deletions(-) diff --git a/contracts/exchange/test/core.ts b/contracts/exchange/test/core.ts index 44961576a2..53d6b1d028 100644 --- a/contracts/exchange/test/core.ts +++ b/contracts/exchange/test/core.ts @@ -169,8 +169,8 @@ describe('Exchange core', () => { constants.AWAIT_TRANSACTION_MINED_MS, ); - // Configure ERC1155Proxy - await web3Wrapper.awaitTransactionSuccessAsync( + // Configure ERC1155Proxy + await web3Wrapper.awaitTransactionSuccessAsync( await erc1155Proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, { from: owner, }), @@ -228,9 +228,11 @@ describe('Exchange core', () => { erc1155NonFungibleTokensOwnedByTaker = []; _.each(nonFungibleTokens, (nonFungibleToken: BigNumber) => { const nonFungibleTokenAsString = nonFungibleToken.toString(); - const nonFungibleTokenHeldByMaker = tokenBalances.nonFungible[makerAddress][erc1155Contract.address][nonFungibleTokenAsString][0]; + const nonFungibleTokenHeldByMaker = + tokenBalances.nonFungible[makerAddress][erc1155Contract.address][nonFungibleTokenAsString][0]; erc1155NonFungibleTokensOwnedByMaker.push(nonFungibleTokenHeldByMaker); - const nonFungibleTokenHeldByTaker = tokenBalances.nonFungible[takerAddress][erc1155Contract.address][nonFungibleTokenAsString][0]; + const nonFungibleTokenHeldByTaker = + tokenBalances.nonFungible[takerAddress][erc1155Contract.address][nonFungibleTokenAsString][0]; erc1155NonFungibleTokensOwnedByTaker.push(nonFungibleTokenHeldByTaker); }); @@ -1097,11 +1099,25 @@ describe('Exchange core', () => { const tokensToTransfer = makerAssetsToTransfer.concat(takerAssetsToTransfer); const makerAssetAmount = new BigNumber(1); const takerAssetAmount = new BigNumber(1); - const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => {return value.times(makerAssetAmount)}); - const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => {return value.times(takerAssetAmount)}); + const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => { + return value.times(makerAssetAmount); + }); + const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => { + return value.times(takerAssetAmount); + }); const receiverCallbackData = '0x'; - const makerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, makerAssetsToTransfer, makerValuesToTransfer, receiverCallbackData); - const takerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, takerAssetsToTransfer, takerValuesToTransfer, receiverCallbackData); + const makerAssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + makerAssetsToTransfer, + makerValuesToTransfer, + receiverCallbackData, + ); + const takerAssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + takerAssetsToTransfer, + takerValuesToTransfer, + receiverCallbackData, + ); signedOrder = await orderFactory.newSignedOrderAsync({ makerAssetData, takerAssetData, @@ -1114,9 +1130,9 @@ describe('Exchange core', () => { // check balances before transfer const expectedInitialBalances = [ // makerAddress / makerToken - constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // makerAddress / takerToken - constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // takerAddress / makerToken constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // takerAddress / takerToken @@ -1150,11 +1166,25 @@ describe('Exchange core', () => { const tokensToTransfer = makerAssetsToTransfer.concat(takerAssetsToTransfer); const makerAssetAmount = new BigNumber(1); const takerAssetAmount = new BigNumber(1); - const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => {return value.times(makerAssetAmount)}); - const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => {return value.times(takerAssetAmount)}); + const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => { + return value.times(makerAssetAmount); + }); + const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => { + return value.times(takerAssetAmount); + }); const receiverCallbackData = '0x'; - const makerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, makerAssetsToTransfer, makerValuesToTransfer, receiverCallbackData); - const takerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, takerAssetsToTransfer, takerValuesToTransfer, receiverCallbackData); + const makerAssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + makerAssetsToTransfer, + makerValuesToTransfer, + receiverCallbackData, + ); + const takerAssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + takerAssetsToTransfer, + takerValuesToTransfer, + receiverCallbackData, + ); signedOrder = await orderFactory.newSignedOrderAsync({ makerAssetData, takerAssetData, @@ -1171,7 +1201,7 @@ describe('Exchange core', () => { // makerAddress / makerToken nftOwnerBalance, // makerAddress / takerToken - nftNotOwnerBalance, + nftNotOwnerBalance, // takerAddress / makerToken nftNotOwnerBalance, // takerAddress / takerToken @@ -1205,11 +1235,25 @@ describe('Exchange core', () => { const tokensToTransfer = makerAssetsToTransfer.concat(takerAssetsToTransfer); const makerAssetAmount = new BigNumber(1); const takerAssetAmount = new BigNumber(1); - const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => {return value.times(makerAssetAmount)}); - const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => {return value.times(takerAssetAmount)}); + const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => { + return value.times(makerAssetAmount); + }); + const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => { + return value.times(takerAssetAmount); + }); const receiverCallbackData = '0x'; - const makerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, makerAssetsToTransfer, makerValuesToTransfer, receiverCallbackData); - const takerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, takerAssetsToTransfer, takerValuesToTransfer, receiverCallbackData); + const makerAssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + makerAssetsToTransfer, + makerValuesToTransfer, + receiverCallbackData, + ); + const takerAssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + takerAssetsToTransfer, + takerValuesToTransfer, + receiverCallbackData, + ); signedOrder = await orderFactory.newSignedOrderAsync({ makerAssetData, takerAssetData, @@ -1224,11 +1268,11 @@ describe('Exchange core', () => { const nftNotOwnerBalance = new BigNumber(0); const expectedInitialBalances = [ // makerAddress / makerToken[0] - constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // makerAddress / makerToken[1] - constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // makerAddress / makerToken[2] - constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // makerAddress / takerToken nftNotOwnerBalance, // takerAddress / makerToken[0] @@ -1282,11 +1326,25 @@ describe('Exchange core', () => { const tokensToTransfer = makerAssetsToTransfer.concat(takerAssetsToTransfer); const makerAssetAmount = new BigNumber(1); const takerAssetAmount = new BigNumber(1); - const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => {return value.times(makerAssetAmount)}); - const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => {return value.times(takerAssetAmount)}); + const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => { + return value.times(makerAssetAmount); + }); + const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => { + return value.times(takerAssetAmount); + }); const receiverCallbackData = '0x'; - const makerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, makerAssetsToTransfer, makerValuesToTransfer, receiverCallbackData); - const takerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, takerAssetsToTransfer, takerValuesToTransfer, receiverCallbackData); + const makerAssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + makerAssetsToTransfer, + makerValuesToTransfer, + receiverCallbackData, + ); + const takerAssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + takerAssetsToTransfer, + takerValuesToTransfer, + receiverCallbackData, + ); signedOrder = await orderFactory.newSignedOrderAsync({ makerAssetData, takerAssetData, @@ -1301,11 +1359,11 @@ describe('Exchange core', () => { const nftNotOwnerBalance = new BigNumber(0); const expectedInitialBalances = [ // makerAddress / makerToken[0] - constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // makerAddress / makerToken[1] constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // makerAddress / makerToken[2] - nftOwnerBalance, + nftOwnerBalance, // makerAddress / takerToken[0] constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // makerAddress / takerToken[1] @@ -1380,11 +1438,31 @@ describe('Exchange core', () => { const tokensToTransfer = makerAssetsToTransfer.concat(takerAssetsToTransfer); const makerAssetAmount = new BigNumber(10); const takerAssetAmount = new BigNumber(20); - const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => {return value.times(makerAssetAmount).times(takerAssetFillAmount).dividedToIntegerBy(takerAssetAmount)}); - const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => {return value.times(takerAssetAmount).times(takerAssetFillAmount).dividedToIntegerBy(takerAssetAmount)}); + const totalMakerValuesTransferred = _.map(makerValuesToTransfer, (value: BigNumber) => { + return value + .times(makerAssetAmount) + .times(takerAssetFillAmount) + .dividedToIntegerBy(takerAssetAmount); + }); + const totalTakerValuesTransferred = _.map(takerValuesToTransfer, (value: BigNumber) => { + return value + .times(takerAssetAmount) + .times(takerAssetFillAmount) + .dividedToIntegerBy(takerAssetAmount); + }); const receiverCallbackData = '0x'; - const makerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, makerAssetsToTransfer, makerValuesToTransfer, receiverCallbackData); - const takerAssetData = assetDataUtils.encodeERC1155AssetData(erc1155Contract.address, takerAssetsToTransfer, takerValuesToTransfer, receiverCallbackData); + const makerAssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + makerAssetsToTransfer, + makerValuesToTransfer, + receiverCallbackData, + ); + const takerAssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + takerAssetsToTransfer, + takerValuesToTransfer, + receiverCallbackData, + ); signedOrder = await orderFactory.newSignedOrderAsync({ makerAssetData, takerAssetData, @@ -1396,7 +1474,7 @@ describe('Exchange core', () => { // check balances before transfer const expectedInitialBalances = [ // makerAddress / makerToken[0] - constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // makerAddress / makerToken[1] constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, // makerAddress / takerToken[0] diff --git a/packages/order-utils/test/asset_data_utils_test.ts b/packages/order-utils/test/asset_data_utils_test.ts index d0206b1aa0..a9cdcf44f2 100644 --- a/packages/order-utils/test/asset_data_utils_test.ts +++ b/packages/order-utils/test/asset_data_utils_test.ts @@ -1,6 +1,6 @@ import * as chai from 'chai'; -import { AssetProxyId, ERC721AssetData } from '@0x/types'; +import { AssetProxyId, ERC1155AssetData, ERC721AssetData } from '@0x/types'; import { BigNumber } from '@0x/utils'; import { assetDataUtils } from '../src/asset_data_utils'; @@ -30,10 +30,14 @@ const KNOWN_ERC1155_ENCODING = { '0x9645780d0000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000003e90000000000000000000000000000000000000000000000000000000000002711000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000007d10000000000000000000000000000000000000000000000000000000000004e210000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000', }; const KNOWN_MULTI_ASSET_ENCODING = { - amounts: [new BigNumber(1), new BigNumber(1)], - nestedAssetData: [KNOWN_ERC20_ENCODING.assetData, KNOWN_ERC721_ENCODING.assetData], + amounts: [new BigNumber(70), new BigNumber(1), new BigNumber(18)], + nestedAssetData: [ + KNOWN_ERC20_ENCODING.assetData, + KNOWN_ERC721_ENCODING.assetData, + KNOWN_ERC1155_ENCODING.assetData, + ], assetData: - '0x94cfcdd7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000024f47261b00000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000', + '0x94cfcdd7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000024f47261b00000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c4800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002049645780d0000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000003e90000000000000000000000000000000000000000000000000000000000002711000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000007d10000000000000000000000000000000000000000000000000000000000004e210000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c4800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', }; describe('assetDataUtils', () => { @@ -80,14 +84,14 @@ describe('assetDataUtils', () => { expect(decodedAssetData.tokenIds).to.be.deep.equal(KNOWN_ERC1155_ENCODING.tokenIds); expect(decodedAssetData.callbackData).to.be.equal(KNOWN_ERC1155_ENCODING.callbackData); }); - it('should encode ERC20 and ERC721 multiAssetData', () => { + it('should encode ERC20, ERC721 and ERC1155 multiAssetData', () => { const assetData = assetDataUtils.encodeMultiAssetData( KNOWN_MULTI_ASSET_ENCODING.amounts, KNOWN_MULTI_ASSET_ENCODING.nestedAssetData, ); expect(assetData).to.equal(KNOWN_MULTI_ASSET_ENCODING.assetData); }); - it('should decode ERC20 and ERC721 multiAssetData', () => { + it('should decode ERC20, ERC721 and ERC1155 multiAssetData', () => { const decodedAssetData = assetDataUtils.decodeMultiAssetData(KNOWN_MULTI_ASSET_ENCODING.assetData); expect(decodedAssetData.assetProxyId).to.equal(AssetProxyId.MultiAsset); expect(decodedAssetData.amounts).to.deep.equal(KNOWN_MULTI_ASSET_ENCODING.amounts); @@ -97,44 +101,79 @@ describe('assetDataUtils', () => { const decodedAssetData = assetDataUtils.decodeMultiAssetDataRecursively(KNOWN_MULTI_ASSET_ENCODING.assetData); expect(decodedAssetData.assetProxyId).to.equal(AssetProxyId.MultiAsset); expect(decodedAssetData.amounts).to.deep.equal(KNOWN_MULTI_ASSET_ENCODING.amounts); + expect(decodedAssetData.nestedAssetData.length).to.equal(3); const decodedErc20AssetData = decodedAssetData.nestedAssetData[0]; - // tslint:disable-next-line:no-unnecessary-type-assertion - const decodedErc721AssetData = decodedAssetData.nestedAssetData[1] as ERC721AssetData; expect(decodedErc20AssetData.tokenAddress).to.equal(KNOWN_ERC20_ENCODING.address); expect(decodedErc20AssetData.assetProxyId).to.equal(AssetProxyId.ERC20); + // tslint:disable-next-line:no-unnecessary-type-assertion + const decodedErc721AssetData = decodedAssetData.nestedAssetData[1] as ERC721AssetData; expect(decodedErc721AssetData.tokenAddress).to.equal(KNOWN_ERC721_ENCODING.address); expect(decodedErc721AssetData.assetProxyId).to.equal(AssetProxyId.ERC721); expect(decodedErc721AssetData.tokenId).to.be.bignumber.equal(KNOWN_ERC721_ENCODING.tokenId); + // tslint:disable-next-line:no-unnecessary-type-assertion + const decodedErc1155AssetData = decodedAssetData.nestedAssetData[2] as ERC1155AssetData; + expect(decodedErc1155AssetData.tokenAddress).to.be.equal(KNOWN_ERC1155_ENCODING.tokenAddress); + expect(decodedErc1155AssetData.tokenValues).to.be.deep.equal(KNOWN_ERC1155_ENCODING.tokenValues); + expect(decodedErc1155AssetData.tokenIds).to.be.deep.equal(KNOWN_ERC1155_ENCODING.tokenIds); + expect(decodedErc1155AssetData.callbackData).to.be.equal(KNOWN_ERC1155_ENCODING.callbackData); }); it('should recursively decode nested assetData within multiAssetData', () => { - const amounts = [new BigNumber(1), new BigNumber(1), new BigNumber(2)]; + // setup test parameters + const erc20Amount = new BigNumber(1); + const erc721Amount = new BigNumber(1); + const erc1155Amount = new BigNumber(15); + const nestedAssetsAmount = new BigNumber(2); + const amounts = [erc20Amount, erc721Amount, erc1155Amount, nestedAssetsAmount]; const nestedAssetData = [ KNOWN_ERC20_ENCODING.assetData, KNOWN_ERC721_ENCODING.assetData, + KNOWN_ERC1155_ENCODING.assetData, KNOWN_MULTI_ASSET_ENCODING.assetData, ]; const assetData = assetDataUtils.encodeMultiAssetData(amounts, nestedAssetData); + // execute test const decodedAssetData = assetDataUtils.decodeMultiAssetDataRecursively(assetData); + // validate asset data expect(decodedAssetData.assetProxyId).to.equal(AssetProxyId.MultiAsset); - const expectedAmounts = [new BigNumber(1), new BigNumber(1), new BigNumber(2), new BigNumber(2)]; + const expectedAmounts = [ + erc20Amount, + erc721Amount, + erc1155Amount, + KNOWN_MULTI_ASSET_ENCODING.amounts[0].times(nestedAssetsAmount), + KNOWN_MULTI_ASSET_ENCODING.amounts[1].times(nestedAssetsAmount), + KNOWN_MULTI_ASSET_ENCODING.amounts[2].times(nestedAssetsAmount), + ]; expect(decodedAssetData.amounts).to.deep.equal(expectedAmounts); - const expectedLength = 4; - expect(decodedAssetData.nestedAssetData.length).to.be.equal(expectedLength); - const decodedErc20AssetData1 = decodedAssetData.nestedAssetData[0]; - // tslint:disable-next-line:no-unnecessary-type-assertion - const decodedErc721AssetData1 = decodedAssetData.nestedAssetData[1] as ERC721AssetData; - const decodedErc20AssetData2 = decodedAssetData.nestedAssetData[2]; - // tslint:disable-next-line:no-unnecessary-type-assertion - const decodedErc721AssetData2 = decodedAssetData.nestedAssetData[3] as ERC721AssetData; + const expectedNestedAssetDataLength = 6; + expect(decodedAssetData.nestedAssetData.length).to.be.equal(expectedNestedAssetDataLength); + // validate nested asset data (outer) + let nestedAssetDataIndex = 0; + const decodedErc20AssetData1 = decodedAssetData.nestedAssetData[nestedAssetDataIndex++]; expect(decodedErc20AssetData1.tokenAddress).to.equal(KNOWN_ERC20_ENCODING.address); expect(decodedErc20AssetData1.assetProxyId).to.equal(AssetProxyId.ERC20); + // tslint:disable-next-line:no-unnecessary-type-assertion + const decodedErc721AssetData1 = decodedAssetData.nestedAssetData[nestedAssetDataIndex++] as ERC721AssetData; expect(decodedErc721AssetData1.tokenAddress).to.equal(KNOWN_ERC721_ENCODING.address); expect(decodedErc721AssetData1.assetProxyId).to.equal(AssetProxyId.ERC721); - expect(decodedErc721AssetData1.tokenId).to.be.bignumber.equal(KNOWN_ERC721_ENCODING.tokenId); + // tslint:disable-next-line:no-unnecessary-type-assertion + const decodedErc1155AssetData1 = decodedAssetData.nestedAssetData[nestedAssetDataIndex++] as ERC1155AssetData; + expect(decodedErc1155AssetData1.tokenAddress).to.be.equal(KNOWN_ERC1155_ENCODING.tokenAddress); + expect(decodedErc1155AssetData1.tokenValues).to.be.deep.equal(KNOWN_ERC1155_ENCODING.tokenValues); + expect(decodedErc1155AssetData1.tokenIds).to.be.deep.equal(KNOWN_ERC1155_ENCODING.tokenIds); + expect(decodedErc1155AssetData1.callbackData).to.be.equal(KNOWN_ERC1155_ENCODING.callbackData); + // validate nested asset data (inner) + const decodedErc20AssetData2 = decodedAssetData.nestedAssetData[nestedAssetDataIndex++]; expect(decodedErc20AssetData2.tokenAddress).to.equal(KNOWN_ERC20_ENCODING.address); expect(decodedErc20AssetData2.assetProxyId).to.equal(AssetProxyId.ERC20); + // tslint:disable-next-line:no-unnecessary-type-assertion + const decodedErc721AssetData2 = decodedAssetData.nestedAssetData[nestedAssetDataIndex++] as ERC721AssetData; expect(decodedErc721AssetData2.tokenAddress).to.equal(KNOWN_ERC721_ENCODING.address); expect(decodedErc721AssetData2.assetProxyId).to.equal(AssetProxyId.ERC721); - expect(decodedErc721AssetData2.tokenId).to.be.bignumber.equal(KNOWN_ERC721_ENCODING.tokenId); + // tslint:disable-next-line:no-unnecessary-type-assertion + const decodedErc1155AssetData2 = decodedAssetData.nestedAssetData[nestedAssetDataIndex++] as ERC1155AssetData; + expect(decodedErc1155AssetData2.tokenAddress).to.be.equal(KNOWN_ERC1155_ENCODING.tokenAddress); + expect(decodedErc1155AssetData2.tokenValues).to.be.deep.equal(KNOWN_ERC1155_ENCODING.tokenValues); + expect(decodedErc1155AssetData2.tokenIds).to.be.deep.equal(KNOWN_ERC1155_ENCODING.tokenIds); + expect(decodedErc1155AssetData2.callbackData).to.be.equal(KNOWN_ERC1155_ENCODING.callbackData); }); }); From 6957e6e8f72b3a0518569c737cd8ed13eb7bce7d Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Thu, 7 Mar 2019 16:50:09 -0800 Subject: [PATCH 31/95] ERC1155 integration tests with MultiAssetProxy --- contracts/asset-proxy/test/proxies.ts | 348 ++++++++++++++++++++++++++ contracts/exchange/test/core.ts | 2 +- contracts/test-utils/src/constants.ts | 2 +- 3 files changed, 350 insertions(+), 2 deletions(-) diff --git a/contracts/asset-proxy/test/proxies.ts b/contracts/asset-proxy/test/proxies.ts index 7977871358..638b550e4f 100644 --- a/contracts/asset-proxy/test/proxies.ts +++ b/contracts/asset-proxy/test/proxies.ts @@ -28,6 +28,7 @@ import * as chai from 'chai'; import { LogWithDecodedArgs } from 'ethereum-types'; import * as _ from 'lodash'; +import { Erc1155Wrapper } from '../../erc1155'; import { artifacts, ERC20ProxyContract, @@ -77,6 +78,15 @@ describe('Asset Transfer Proxies', () => { let erc721AFromTokenId: BigNumber; let erc721BFromTokenId: BigNumber; + let erc1155Proxy: ERC721ProxyContract; + let erc1155ProxyWrapper: ERC1155ProxyWrapper; + let erc1155Contract: ERC1155MintableContract; + let erc1155Contract2: ERC1155MintableContract; + let erc1155Wrapper: Erc1155Wrapper; + let erc1155Wrapper2: Erc1155Wrapper; + let erc1155FungibleTokens: BigNumber[]; + let erc1155NonFungibleTokensOwnedBySpender: BigNumber[]; + before(async () => { await blockchainLifecycle.startAsync(); }); @@ -127,6 +137,22 @@ describe('Asset Transfer Proxies', () => { constants.AWAIT_TRANSACTION_MINED_MS, ); + // Configure ERC115Proxy + erc1155ProxyWrapper = new ERC1155ProxyWrapper(provider, usedAddresses, owner); + erc1155Proxy = await erc1155ProxyWrapper.deployProxyAsync(); + await web3Wrapper.awaitTransactionSuccessAsync( + await erc1155Proxy.addAuthorizedAddress.sendTransactionAsync(authorized, { + from: owner, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + await web3Wrapper.awaitTransactionSuccessAsync( + await erc1155Proxy.addAuthorizedAddress.sendTransactionAsync(multiAssetProxy.address, { + from: owner, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + // Configure MultiAssetProxy await web3Wrapper.awaitTransactionSuccessAsync( await multiAssetProxy.addAuthorizedAddress.sendTransactionAsync(authorized, { @@ -146,6 +172,12 @@ describe('Asset Transfer Proxies', () => { }), constants.AWAIT_TRANSACTION_MINED_MS, ); + await web3Wrapper.awaitTransactionSuccessAsync( + await multiAssetProxy.registerAssetProxy.sendTransactionAsync(erc1155Proxy.address, { + from: owner, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); // Deploy and configure ERC20 tokens const numDummyErc20ToDeploy = 2; @@ -213,6 +245,22 @@ describe('Asset Transfer Proxies', () => { const erc721Balances = await erc721Wrapper.getBalancesAsync(); erc721AFromTokenId = erc721Balances[fromAddress][erc721TokenA.address][0]; erc721BFromTokenId = erc721Balances[fromAddress][erc721TokenB.address][0]; + + // Deploy & configure ERC1155 tokens and receiver + [erc1155Wrapper, erc1155Wrapper2] = await erc1155ProxyWrapper.deployDummyContractsAsync(); + erc1155Contract = erc1155Wrapper.getContract(); + erc1155Contract2 = erc1155Wrapper2.getContract(); + await erc1155ProxyWrapper.setBalancesAndAllowancesAsync(); + erc1155FungibleTokens = erc1155ProxyWrapper.getFungibleTokenIds(); + const nonFungibleTokens = erc1155ProxyWrapper.getNonFungibleTokenIds(); + const tokenBalances = await erc1155ProxyWrapper.getBalancesAsync(); + erc1155NonFungibleTokensOwnedBySpender = []; + _.each(nonFungibleTokens, (nonFungibleToken: BigNumber) => { + const nonFungibleTokenAsString = nonFungibleToken.toString(); + const nonFungibleTokenHeldBySpender = + tokenBalances.nonFungible[fromAddress][erc1155Contract.address][nonFungibleTokenAsString][0]; + erc1155NonFungibleTokensOwnedBySpender.push(nonFungibleTokenHeldBySpender); + }); }); beforeEach(async () => { await blockchainLifecycle.startAsync(); @@ -944,6 +992,306 @@ describe('Asset Transfer Proxies', () => { expect(newOwnerFromAsset1).to.be.equal(toAddress); expect(newOwnerFromAsset2).to.be.equal(toAddress); }); + it('should transfer a fungible ERC1155 token', async () => { + // setup test parameters + const tokenHolders = [fromAddress, toAddress]; + const tokensToTransfer = erc1155FungibleTokens.slice(0, 1); + const valuesToTransfer = [new BigNumber(25)]; + const valueMultiplier = new BigNumber(23); + const receiverCallbackData = '0x0102030405'; + // check balances before transfer + const expectedInitialBalances = [ + // from + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // to + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // encode erc1155 asset data + const erc1155AssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + tokensToTransfer, + valuesToTransfer, + receiverCallbackData, + ); + // encode multi-asset data + const multiAssetAmount = new BigNumber(5); + const amounts = [valueMultiplier]; + const nestedAssetData = [erc1155AssetData]; + const assetData = assetDataUtils.encodeMultiAssetData(amounts, nestedAssetData); + const data = assetProxyInterface.transferFrom.getABIEncodedTransactionData( + assetData, + fromAddress, + toAddress, + multiAssetAmount, + ); + // execute transfer + await web3Wrapper.awaitTransactionSuccessAsync( + await web3Wrapper.sendTransactionAsync({ + to: multiAssetProxy.address, + data, + from: authorized, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + // check balances + const totalValueTransferred = valuesToTransfer[0].times(valueMultiplier).times(multiAssetAmount); + const expectedFinalBalances = [ + // from + expectedInitialBalances[0].minus(totalValueTransferred), + // to + expectedInitialBalances[1].plus(totalValueTransferred), + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); + it('should successfully transfer multiple fungible tokens of the same ERC1155 contract', async () => { + // setup test parameters + const tokenHolders = [fromAddress, toAddress]; + const tokensToTransfer = erc1155FungibleTokens.slice(0, 3); + const valuesToTransfer = [new BigNumber(25), new BigNumber(35), new BigNumber(45)]; + const valueMultiplier = new BigNumber(23); + const receiverCallbackData = '0x0102030405'; + // check balances before transfer + const expectedInitialBalances = [ + // from + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // to + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // encode erc1155 asset data + const erc1155AssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + tokensToTransfer, + valuesToTransfer, + receiverCallbackData, + ); + // encode multi-asset data + const multiAssetAmount = new BigNumber(5); + const amounts = [valueMultiplier]; + const nestedAssetData = [erc1155AssetData]; + const assetData = assetDataUtils.encodeMultiAssetData(amounts, nestedAssetData); + const data = assetProxyInterface.transferFrom.getABIEncodedTransactionData( + assetData, + fromAddress, + toAddress, + multiAssetAmount, + ); + // execute transfer + await web3Wrapper.awaitTransactionSuccessAsync( + await web3Wrapper.sendTransactionAsync({ + to: multiAssetProxy.address, + data, + from: authorized, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + // check balances + const totalValuesTransferred = _.map(valuesToTransfer, (value: BigNumber) => { + return value.times(valueMultiplier).times(multiAssetAmount); + }); + const expectedFinalBalances = [ + // from + expectedInitialBalances[0].minus(totalValuesTransferred[0]), + expectedInitialBalances[1].minus(totalValuesTransferred[1]), + expectedInitialBalances[2].minus(totalValuesTransferred[2]), + // to + expectedInitialBalances[3].plus(totalValuesTransferred[0]), + expectedInitialBalances[4].plus(totalValuesTransferred[1]), + expectedInitialBalances[5].plus(totalValuesTransferred[2]), + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); + it('should successfully transfer multiple fungible/non-fungible tokens of the same ERC1155 contract', async () => { + // setup test parameters + const tokenHolders = [fromAddress, toAddress]; + const fungibleTokensToTransfer = erc1155FungibleTokens.slice(0, 1); + const nonFungibleTokensToTransfer = erc1155NonFungibleTokensOwnedBySpender.slice(0, 1); + const tokensToTransfer = fungibleTokensToTransfer.concat(nonFungibleTokensToTransfer); + const valuesToTransfer = [new BigNumber(25), new BigNumber(1)]; + const valueMultiplier = new BigNumber(1); + const receiverCallbackData = '0x0102030405'; + // check balances before transfer + const nftOwnerBalance = new BigNumber(1); + const nftNotOwnerBalance = new BigNumber(0); + const expectedInitialBalances = [ + // from + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + nftOwnerBalance, + // to + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + nftNotOwnerBalance, + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // encode erc1155 asset data + const erc1155AssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + tokensToTransfer, + valuesToTransfer, + receiverCallbackData, + ); + // encode multi-asset data + const multiAssetAmount = new BigNumber(1); + const amounts = [valueMultiplier]; + const nestedAssetData = [erc1155AssetData]; + const assetData = assetDataUtils.encodeMultiAssetData(amounts, nestedAssetData); + const data = assetProxyInterface.transferFrom.getABIEncodedTransactionData( + assetData, + fromAddress, + toAddress, + multiAssetAmount, + ); + // execute transfer + await web3Wrapper.awaitTransactionSuccessAsync( + await web3Wrapper.sendTransactionAsync({ + to: multiAssetProxy.address, + data, + from: authorized, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + // check balances + const totalValuesTransferred = _.map(valuesToTransfer, (value: BigNumber) => { + return value.times(valueMultiplier).times(multiAssetAmount); + }); + const expectedFinalBalances = [ + // from + expectedInitialBalances[0].minus(totalValuesTransferred[0]), + expectedInitialBalances[1].minus(totalValuesTransferred[1]), + // to + expectedInitialBalances[2].plus(totalValuesTransferred[0]), + expectedInitialBalances[3].plus(totalValuesTransferred[1]), + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); + it('should successfully transfer multiple different ERC1155 tokens', async () => { + // setup test parameters + const tokenHolders = [fromAddress, toAddress]; + const tokensToTransfer = erc1155FungibleTokens.slice(0, 1); + const valuesToTransfer = [new BigNumber(25)]; + const valueMultiplier = new BigNumber(23); + const receiverCallbackData = '0x0102030405'; + // check balances before transfer + const expectedInitialBalances = [ + // from + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + // to + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + await erc1155Wrapper2.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // encode erc1155 asset data + const erc1155AssetData1 = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + tokensToTransfer, + valuesToTransfer, + receiverCallbackData, + ); + const erc1155AssetData2 = assetDataUtils.encodeERC1155AssetData( + erc1155Contract2.address, + tokensToTransfer, + valuesToTransfer, + receiverCallbackData, + ); + // encode multi-asset data + const multiAssetAmount = new BigNumber(5); + const amounts = [valueMultiplier, valueMultiplier]; + const nestedAssetData = [erc1155AssetData1, erc1155AssetData2]; + const assetData = assetDataUtils.encodeMultiAssetData(amounts, nestedAssetData); + const data = assetProxyInterface.transferFrom.getABIEncodedTransactionData( + assetData, + fromAddress, + toAddress, + multiAssetAmount, + ); + // execute transfer + await web3Wrapper.awaitTransactionSuccessAsync( + await web3Wrapper.sendTransactionAsync({ + to: multiAssetProxy.address, + data, + from: authorized, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + // check balances + const totalValueTransferred = valuesToTransfer[0].times(valueMultiplier).times(multiAssetAmount); + const expectedFinalBalances = [ + // from + expectedInitialBalances[0].minus(totalValueTransferred), + // to + expectedInitialBalances[1].plus(totalValueTransferred), + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + await erc1155Wrapper2.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); + it('should successfully transfer a combination of ERC20, ERC721, and ERC1155 tokens', async () => { + // setup test parameters + const inputAmount = new BigNumber(1); + const erc20Amount = new BigNumber(10); + const erc20AssetData = assetDataUtils.encodeERC20AssetData(erc20TokenA.address); + const erc721Amount = new BigNumber(1); + const erc721AssetData = assetDataUtils.encodeERC721AssetData(erc721TokenA.address, erc721AFromTokenId); + const erc1155TokenHolders = [fromAddress, toAddress]; + const erc1155TokensToTransfer = erc1155FungibleTokens.slice(0, 1); + const erc1155ValuesToTransfer = [new BigNumber(25)]; + const erc1155Amount = new BigNumber(23); + const erc1155ReceiverCallbackData = '0x0102030405'; + const erc1155AssetData = assetDataUtils.encodeERC1155AssetData( + erc1155Contract.address, + erc1155TokensToTransfer, + erc1155ValuesToTransfer, + erc1155ReceiverCallbackData, + ); + const amounts = [erc20Amount, erc721Amount, erc1155Amount]; + const nestedAssetData = [erc20AssetData, erc721AssetData, erc1155AssetData]; + const assetData = assetDataUtils.encodeMultiAssetData(amounts, nestedAssetData); + const data = assetProxyInterface.transferFrom.getABIEncodedTransactionData( + assetData, + fromAddress, + toAddress, + inputAmount, + ); + // check balances before transfer + const erc20Balances = await erc20Wrapper.getBalancesAsync(); + const ownerFromAsset = await erc721TokenA.ownerOf.callAsync(erc721AFromTokenId); + expect(ownerFromAsset).to.be.equal(fromAddress); + const erc1155ExpectedInitialBalances = [ + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, + ]; + await erc1155Wrapper.assertBalancesAsync(erc1155TokenHolders, erc1155TokensToTransfer, erc1155ExpectedInitialBalances); + // execute transfer + await web3Wrapper.awaitTransactionSuccessAsync( + await web3Wrapper.sendTransactionAsync({ + to: multiAssetProxy.address, + data, + from: authorized, + gas: 1000000, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + // check balances after transfer + const newBalances = await erc20Wrapper.getBalancesAsync(); + const totalAmount = inputAmount.times(erc20Amount); + expect(newBalances[fromAddress][erc20TokenA.address]).to.be.bignumber.equal( + erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount), + ); + expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( + erc20Balances[toAddress][erc20TokenA.address].plus(totalAmount), + ); + const newOwnerFromAsset = await erc721TokenA.ownerOf.callAsync(erc721AFromTokenId); + expect(newOwnerFromAsset).to.be.equal(toAddress); + const erc1155TotalValueTransferred = erc1155ValuesToTransfer[0].times(erc1155Amount).times(inputAmount); + const expectedFinalBalances = [ + erc1155ExpectedInitialBalances[0].minus(erc1155TotalValueTransferred), + erc1155ExpectedInitialBalances[1].plus(erc1155TotalValueTransferred), + ]; + await erc1155Wrapper.assertBalancesAsync(erc1155TokenHolders, erc1155TokensToTransfer, expectedFinalBalances); + }); it('should successfully transfer a combination of ERC20 and ERC721 tokens', async () => { const inputAmount = new BigNumber(1); const erc20Amount = new BigNumber(10); diff --git a/contracts/exchange/test/core.ts b/contracts/exchange/test/core.ts index 53d6b1d028..21d5482de6 100644 --- a/contracts/exchange/test/core.ts +++ b/contracts/exchange/test/core.ts @@ -121,7 +121,7 @@ describe('Exchange core', () => { ); [erc721Token] = await erc721Wrapper.deployDummyTokensAsync(); erc1155Proxy = await erc1155ProxyWrapper.deployProxyAsync(); - [erc1155Wrapper] = await erc1155ProxyWrapper.deployDummyTokensAsync(); + [erc1155Wrapper] = await erc1155ProxyWrapper.deployDummyContractsAsync(); erc1155Contract = erc1155Wrapper.getContract(); exchange = await ExchangeContract.deployFrom0xArtifactAsync( artifacts.Exchange, diff --git a/contracts/test-utils/src/constants.ts b/contracts/test-utils/src/constants.ts index 2e58d764d0..199042edc0 100644 --- a/contracts/test-utils/src/constants.ts +++ b/contracts/test-utils/src/constants.ts @@ -38,7 +38,7 @@ export const constants = { NUM_DUMMY_ERC20_TO_DEPLOY: 3, NUM_DUMMY_ERC721_TO_DEPLOY: 2, NUM_ERC721_TOKENS_TO_MINT: 2, - NUM_DUMMY_ERC1155_CONTRACTS_TO_DEPLOY: 1, + NUM_DUMMY_ERC1155_CONTRACTS_TO_DEPLOY: 2, NUM_ERC1155_FUNGIBLE_TOKENS_MINT: 3, NUM_ERC1155_NONFUNGIBLE_TOKENS_MINT: 3, NULL_ADDRESS: '0x0000000000000000000000000000000000000000', From 6992bff0e0fbdd50326e190b1cd9fe5cfcfaa651 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Thu, 7 Mar 2019 17:30:16 -0800 Subject: [PATCH 32/95] Ran prettier & linter --- contracts/asset-proxy/test/proxies.ts | 46 ++++++++++++++++----------- contracts/exchange/package.json | 1 + contracts/exchange/test/core.ts | 10 +++--- 3 files changed, 32 insertions(+), 25 deletions(-) diff --git a/contracts/asset-proxy/test/proxies.ts b/contracts/asset-proxy/test/proxies.ts index 638b550e4f..b4e202a9db 100644 --- a/contracts/asset-proxy/test/proxies.ts +++ b/contracts/asset-proxy/test/proxies.ts @@ -137,21 +137,21 @@ describe('Asset Transfer Proxies', () => { constants.AWAIT_TRANSACTION_MINED_MS, ); - // Configure ERC115Proxy - erc1155ProxyWrapper = new ERC1155ProxyWrapper(provider, usedAddresses, owner); - erc1155Proxy = await erc1155ProxyWrapper.deployProxyAsync(); - await web3Wrapper.awaitTransactionSuccessAsync( - await erc1155Proxy.addAuthorizedAddress.sendTransactionAsync(authorized, { - from: owner, - }), - constants.AWAIT_TRANSACTION_MINED_MS, - ); - await web3Wrapper.awaitTransactionSuccessAsync( - await erc1155Proxy.addAuthorizedAddress.sendTransactionAsync(multiAssetProxy.address, { - from: owner, - }), - constants.AWAIT_TRANSACTION_MINED_MS, - ); + // Configure ERC115Proxy + erc1155ProxyWrapper = new ERC1155ProxyWrapper(provider, usedAddresses, owner); + erc1155Proxy = await erc1155ProxyWrapper.deployProxyAsync(); + await web3Wrapper.awaitTransactionSuccessAsync( + await erc1155Proxy.addAuthorizedAddress.sendTransactionAsync(authorized, { + from: owner, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); + await web3Wrapper.awaitTransactionSuccessAsync( + await erc1155Proxy.addAuthorizedAddress.sendTransactionAsync(multiAssetProxy.address, { + from: owner, + }), + constants.AWAIT_TRANSACTION_MINED_MS, + ); // Configure MultiAssetProxy await web3Wrapper.awaitTransactionSuccessAsync( @@ -259,7 +259,7 @@ describe('Asset Transfer Proxies', () => { const nonFungibleTokenAsString = nonFungibleToken.toString(); const nonFungibleTokenHeldBySpender = tokenBalances.nonFungible[fromAddress][erc1155Contract.address][nonFungibleTokenAsString][0]; - erc1155NonFungibleTokensOwnedBySpender.push(nonFungibleTokenHeldBySpender); + erc1155NonFungibleTokensOwnedBySpender.push(nonFungibleTokenHeldBySpender); }); }); beforeEach(async () => { @@ -1240,7 +1240,7 @@ describe('Asset Transfer Proxies', () => { const erc1155ValuesToTransfer = [new BigNumber(25)]; const erc1155Amount = new BigNumber(23); const erc1155ReceiverCallbackData = '0x0102030405'; - const erc1155AssetData = assetDataUtils.encodeERC1155AssetData( + const erc1155AssetData = assetDataUtils.encodeERC1155AssetData( erc1155Contract.address, erc1155TokensToTransfer, erc1155ValuesToTransfer, @@ -1263,7 +1263,11 @@ describe('Asset Transfer Proxies', () => { constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, constants.INITIAL_ERC1155_FUNGIBLE_BALANCE, ]; - await erc1155Wrapper.assertBalancesAsync(erc1155TokenHolders, erc1155TokensToTransfer, erc1155ExpectedInitialBalances); + await erc1155Wrapper.assertBalancesAsync( + erc1155TokenHolders, + erc1155TokensToTransfer, + erc1155ExpectedInitialBalances, + ); // execute transfer await web3Wrapper.awaitTransactionSuccessAsync( await web3Wrapper.sendTransactionAsync({ @@ -1290,7 +1294,11 @@ describe('Asset Transfer Proxies', () => { erc1155ExpectedInitialBalances[0].minus(erc1155TotalValueTransferred), erc1155ExpectedInitialBalances[1].plus(erc1155TotalValueTransferred), ]; - await erc1155Wrapper.assertBalancesAsync(erc1155TokenHolders, erc1155TokensToTransfer, expectedFinalBalances); + await erc1155Wrapper.assertBalancesAsync( + erc1155TokenHolders, + erc1155TokensToTransfer, + expectedFinalBalances, + ); }); it('should successfully transfer a combination of ERC20 and ERC721 tokens', async () => { const inputAmount = new BigNumber(1); diff --git a/contracts/exchange/package.json b/contracts/exchange/package.json index 69ba190525..5f45dc25c4 100644 --- a/contracts/exchange/package.json +++ b/contracts/exchange/package.json @@ -71,6 +71,7 @@ "@0x/contracts-asset-proxy": "^1.0.9", "@0x/contracts-erc20": "^1.0.9", "@0x/contracts-erc721": "^1.0.9", + "@0x/contracts-erc1155": "^0.0.1", "@0x/contracts-exchange-libs": "^1.1.3", "@0x/contracts-utils": "^2.0.8", "@0x/order-utils": "^7.0.2", diff --git a/contracts/exchange/test/core.ts b/contracts/exchange/test/core.ts index 21d5482de6..ff6874c0ea 100644 --- a/contracts/exchange/test/core.ts +++ b/contracts/exchange/test/core.ts @@ -1,12 +1,13 @@ import { artifacts as proxyArtifacts, + ERC1155ProxyWrapper, ERC20ProxyContract, ERC20Wrapper, ERC721ProxyContract, ERC721Wrapper, MultiAssetProxyContract, - ERC1155ProxyWrapper, } from '@0x/contracts-asset-proxy'; +import { ERC1155MintableContract } from '@0x/contracts-erc1155'; import { artifacts as erc20Artifacts, DummyERC20TokenContract, @@ -27,7 +28,6 @@ import { txDefaults, web3Wrapper, } from '@0x/contracts-test-utils'; -import { ERC1155MintableContract, DummyERC1155ReceiverBatchTokenReceivedEventArgs } from '@0x/contracts-erc1155'; import { BlockchainLifecycle } from '@0x/dev-utils'; import { assetDataUtils, orderHashUtils } from '@0x/order-utils'; import { RevertReason, SignatureType, SignedOrder } from '@0x/types'; @@ -38,6 +38,7 @@ import { LogWithDecodedArgs } from 'ethereum-types'; import ethUtil = require('ethereumjs-util'); import * as _ from 'lodash'; +import { Erc1155Wrapper } from '../../erc1155/lib/src'; import { artifacts, ExchangeCancelEventArgs, @@ -46,8 +47,6 @@ import { ReentrantERC20TokenContract, TestStaticCallReceiverContract, } from '../src'; -import { Erc1155Wrapper, ERC1155Contract } from '../../erc1155/lib/src'; -import { Exception } from 'handlebars'; chaiSetup.configure(); const expect = chai.expect; @@ -1087,8 +1086,7 @@ describe('Exchange core', () => { ); }); }); - - describe.only('Testing exchange of erc1155 assets', () => { + describe('Testing exchange of erc1155 assets', () => { it('should allow a single fungible erc1155 asset to be exchanged for another', async () => { // setup test parameters const tokenHolders = [makerAddress, takerAddress]; From c0260bc44acfc961475dbe60b32393b87a80ac61 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Mon, 11 Mar 2019 18:24:19 -0700 Subject: [PATCH 33/95] rebased against development --- contracts/asset-proxy/test/proxies.ts | 3 ++- contracts/exchange/package.json | 2 +- packages/order-utils/src/asset_data_utils.ts | 3 --- packages/order-utils/test/asset_data_utils_test.ts | 4 ---- 4 files changed, 3 insertions(+), 9 deletions(-) diff --git a/contracts/asset-proxy/test/proxies.ts b/contracts/asset-proxy/test/proxies.ts index b4e202a9db..81d1475d82 100644 --- a/contracts/asset-proxy/test/proxies.ts +++ b/contracts/asset-proxy/test/proxies.ts @@ -1,3 +1,4 @@ +import { ERC1155MintableContract, Erc1155Wrapper } from '@0x/contracts-erc1155'; import { artifacts as erc20Artifacts, DummyERC20TokenContract, @@ -28,9 +29,9 @@ import * as chai from 'chai'; import { LogWithDecodedArgs } from 'ethereum-types'; import * as _ from 'lodash'; -import { Erc1155Wrapper } from '../../erc1155'; import { artifacts, + ERC1155ProxyWrapper, ERC20ProxyContract, ERC20Wrapper, ERC721ProxyContract, diff --git a/contracts/exchange/package.json b/contracts/exchange/package.json index 5f45dc25c4..c32eb31e5e 100644 --- a/contracts/exchange/package.json +++ b/contracts/exchange/package.json @@ -71,7 +71,7 @@ "@0x/contracts-asset-proxy": "^1.0.9", "@0x/contracts-erc20": "^1.0.9", "@0x/contracts-erc721": "^1.0.9", - "@0x/contracts-erc1155": "^0.0.1", + "@0x/contracts-erc1155": "^1.0.0", "@0x/contracts-exchange-libs": "^1.1.3", "@0x/contracts-utils": "^2.0.8", "@0x/order-utils": "^7.0.2", diff --git a/packages/order-utils/src/asset_data_utils.ts b/packages/order-utils/src/asset_data_utils.ts index 1dc6922365..2acf57d5f6 100644 --- a/packages/order-utils/src/asset_data_utils.ts +++ b/packages/order-utils/src/asset_data_utils.ts @@ -5,9 +5,6 @@ import { ERC1155AssetDataNoProxyId, ERC20AssetData, ERC721AssetData, - ERC1155AssetData, - ERC1155AssetDataAbi, - ERC1155AssetDataNoProxyId, MultiAssetData, MultiAssetDataWithRecursiveDecoding, SingleAssetData, diff --git a/packages/order-utils/test/asset_data_utils_test.ts b/packages/order-utils/test/asset_data_utils_test.ts index a9cdcf44f2..203956948e 100644 --- a/packages/order-utils/test/asset_data_utils_test.ts +++ b/packages/order-utils/test/asset_data_utils_test.ts @@ -68,11 +68,7 @@ describe('assetDataUtils', () => { KNOWN_ERC1155_ENCODING.tokenAddress, KNOWN_ERC1155_ENCODING.tokenIds, KNOWN_ERC1155_ENCODING.tokenValues, -<<<<<<< HEAD KNOWN_ERC1155_ENCODING.callbackData, -======= - KNOWN_ERC1155_ENCODING.callbackData ->>>>>>> 5bddc5795... ERC1155 Asset Data tests + types ); expect(assetData).to.equal(KNOWN_ERC1155_ENCODING.assetData); }); From 29ebed951499c763d0ef7755ada325b85edee3c0 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Thu, 14 Mar 2019 22:13:53 -0700 Subject: [PATCH 34/95] Added ERC1155 artifacts to log decoder for exchange wrapper --- contracts/exchange/test/utils/exchange_wrapper.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/contracts/exchange/test/utils/exchange_wrapper.ts b/contracts/exchange/test/utils/exchange_wrapper.ts index fef8b55db3..a06e35a462 100644 --- a/contracts/exchange/test/utils/exchange_wrapper.ts +++ b/contracts/exchange/test/utils/exchange_wrapper.ts @@ -1,3 +1,4 @@ +import { artifacts as erc1155Artifacts } from '@0x/contracts-erc1155'; import { artifacts as erc20Artifacts } from '@0x/contracts-erc20'; import { artifacts as erc721Artifacts } from '@0x/contracts-erc721'; import { @@ -25,7 +26,12 @@ export class ExchangeWrapper { constructor(exchangeContract: ExchangeContract, provider: Web3ProviderEngine | ZeroExProvider) { this._exchange = exchangeContract; this._web3Wrapper = new Web3Wrapper(provider); - this._logDecoder = new LogDecoder(this._web3Wrapper, { ...artifacts, ...erc20Artifacts, ...erc721Artifacts }); + this._logDecoder = new LogDecoder(this._web3Wrapper, { + ...artifacts, + ...erc20Artifacts, + ...erc721Artifacts, + ...erc1155Artifacts, + }); } public async fillOrderAsync( signedOrder: SignedOrder, From 7024f29865561f3f94f555bf56b50bc89a8f4883 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Thu, 14 Mar 2019 23:08:52 -0700 Subject: [PATCH 35/95] updated changelogs --- contracts/asset-proxy/CHANGELOG.json | 6 +++++- contracts/exchange/CHANGELOG.json | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/contracts/asset-proxy/CHANGELOG.json b/contracts/asset-proxy/CHANGELOG.json index fc665e19a1..2871872a8a 100644 --- a/contracts/asset-proxy/CHANGELOG.json +++ b/contracts/asset-proxy/CHANGELOG.json @@ -13,12 +13,16 @@ { "note": "Bumped solidity version to ^0.5.5", "pr": 1701 + }, + { + "note": "Integration testing for ERC1155Proxy", + "pr": 1673 } ] }, { "timestamp": 1551479279, - "version": "1.0.9", + "version": "1.å.9", "changes": [ { "note": "Dependencies updated" diff --git a/contracts/exchange/CHANGELOG.json b/contracts/exchange/CHANGELOG.json index f5ec62d609..6f9c055614 100644 --- a/contracts/exchange/CHANGELOG.json +++ b/contracts/exchange/CHANGELOG.json @@ -9,6 +9,10 @@ { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 + }, + { + "note": "Integration testing for ERC1155Proxy", + "pr": 1673 } ] }, From 30d0bdec07d9a376efe0cc77d5a21f7e4ff7b0a6 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Mon, 18 Mar 2019 17:31:47 -0700 Subject: [PATCH 36/95] Updated changelog and yarn.lock --- contracts/asset-proxy/CHANGELOG.json | 2 +- yarn.lock | 10 ---------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/contracts/asset-proxy/CHANGELOG.json b/contracts/asset-proxy/CHANGELOG.json index 2871872a8a..4bdbc98084 100644 --- a/contracts/asset-proxy/CHANGELOG.json +++ b/contracts/asset-proxy/CHANGELOG.json @@ -22,7 +22,7 @@ }, { "timestamp": 1551479279, - "version": "1.å.9", + "version": "1.0.9", "changes": [ { "note": "Dependencies updated" diff --git a/yarn.lock b/yarn.lock index ed2369fc1a..19f79e4574 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6498,7 +6498,6 @@ ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0, ether ethereumjs-block@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.0.tgz#8c6c3ab4a5eff0a16d9785fbeedbe643f4dbcbef" - integrity sha512-Ye+uG/L2wrp364Zihdlr/GfC3ft+zG8PdHcRtsBFNNH1CkOhxOwdB8friBU85n89uRZ9eIMAywCq0F4CwT1wAw== dependencies: async "^2.0.1" ethereumjs-common "^1.1.0" @@ -6521,7 +6520,6 @@ ethereumjs-common@^0.6.0: ethereumjs-common@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.1.0.tgz#5ec9086c314d619d8f05e79a0525829fcb0e93cb" - integrity sha512-LUmYkKV/HcZbWRyu3OU9YOevsH3VJDXtI6kEd8VZweQec+JjDGKCmAVKUyzhYUHqxRJu7JNALZ3A/b3NXOP6tA== ethereumjs-tx@1.3.7: version "1.3.7" @@ -6574,7 +6572,6 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum ethereumjs-util@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz#e9c51e5549e8ebd757a339cc00f5380507e799c8" - integrity sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q== dependencies: bn.js "^4.11.0" create-hash "^1.1.2" @@ -6603,7 +6600,6 @@ ethereumjs-vm@^2.0.2, ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4: ethereumjs-vm@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== dependencies: async "^2.1.2" async-eventemitter "^0.2.2" @@ -6671,7 +6667,6 @@ ethjs-unit@0.1.6: ethjs-util@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" - integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== dependencies: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" @@ -7543,7 +7538,6 @@ ganache-cli@6.4.1: ganache-core@^2.5.3: version "2.5.3" resolved "https://registry.yarnpkg.com/ganache-core/-/ganache-core-2.5.3.tgz#8c6f21d820a694826082dfbb2dc59f834a6874fc" - integrity sha512-lTqPSxgWS5p4zJ8yNbhhsBXMPfcuV+jjnnYtsbJTph9L6InA6UkNpO0hhHuDFWF3GpblP3LjvWPpqW+X6pdZGg== dependencies: abstract-leveldown "3.0.0" async "2.6.1" @@ -11084,7 +11078,6 @@ merkle-patricia-tree@2.3.1, merkle-patricia-tree@^2.1.2: merkle-patricia-tree@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" - integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== dependencies: async "^1.4.2" ethereumjs-util "^5.0.0" @@ -13558,7 +13551,6 @@ react-dom@^16.3.2: react-dom@^16.4.2: version "16.8.4" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.4.tgz#1061a8e01a2b3b0c8160037441c3bf00a0e3bc48" - integrity sha512-Ob2wK7XG2tUDt7ps7LtLzGYYB6DXMCLj0G5fO6WeEICtT4/HdpOi7W/xLzZnR6RCG1tYza60nMdqtxzA8FaPJQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -13871,7 +13863,6 @@ react@^16.3.2: react@^16.4.2: version "16.8.4" resolved "https://registry.yarnpkg.com/react/-/react-16.8.4.tgz#fdf7bd9ae53f03a9c4cd1a371432c206be1c4768" - integrity sha512-0GQ6gFXfUH7aZcjGVymlPOASTuSjlQL4ZtVC5YKH+3JL6bBLCVO21DknzmaPlI90LN253ojj02nsapy+j7wIjg== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -14752,7 +14743,6 @@ schedule@^0.5.0: scheduler@^0.13.4: version "0.13.4" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.4.tgz#8fef05e7a3580c76c0364d2df5e550e4c9140298" - integrity sha512-cvSOlRPxOHs5dAhP9yiS/6IDmVAVxmk33f0CtTJRkmUWcb1Us+t7b1wqdzoC0REw2muC9V5f1L/w5R5uKGaepA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" From 98c6fa10e65d5fa0255c7db92e19c22904f37dfd Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Mon, 18 Mar 2019 17:42:06 -0700 Subject: [PATCH 37/95] Added 1explicit ERC1555Poxy testsfor cwhen receiver allback data is NULLL (0x) --- contracts/asset-proxy/test/erc1155_proxy.ts | 44 +++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/contracts/asset-proxy/test/erc1155_proxy.ts b/contracts/asset-proxy/test/erc1155_proxy.ts index 7931fdfda0..f55e11024f 100644 --- a/contracts/asset-proxy/test/erc1155_proxy.ts +++ b/contracts/asset-proxy/test/erc1155_proxy.ts @@ -433,6 +433,50 @@ describe('ERC1155Proxy', () => { ]; await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); }); + it('should successfully transfer value to a smart contract and trigger its callback, when callback `data` is NULL', async () => { + // setup test parameters + const tokenHolders = [spender, receiverContract]; + const tokensToTransfer = fungibleTokens.slice(0, 1); + const valuesToTransfer = [fungibleValueToTransferLarge]; + const valueMultiplier = valueMultiplierSmall; + const totalValuesTransferred = _.map(valuesToTransfer, (value: BigNumber) => { + return value.times(valueMultiplier); + }); + // check balances before transfer + const expectedInitialBalances = [spenderInitialFungibleBalance, receiverContractInitialFungibleBalance]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances); + // execute transfer + const nullReceiverCallbackData = '0x'; + const txReceipt = await erc1155ProxyWrapper.transferFromWithLogsAsync( + spender, + receiverContract, + erc1155Contract.address, + tokensToTransfer, + valuesToTransfer, + valueMultiplier, + nullReceiverCallbackData, + authorized, + ); + // check receiver log ignored extra asset data + expect(txReceipt.logs.length).to.be.equal(2); + const receiverLog = txReceipt.logs[1] as LogWithDecodedArgs< + DummyERC1155ReceiverBatchTokenReceivedEventArgs + >; + expect(receiverLog.args.operator).to.be.equal(erc1155Proxy.address); + expect(receiverLog.args.from).to.be.equal(spender); + expect(receiverLog.args.tokenIds.length).to.be.deep.equal(1); + expect(receiverLog.args.tokenIds[0]).to.be.bignumber.equal(tokensToTransfer[0]); + expect(receiverLog.args.tokenValues.length).to.be.deep.equal(1); + expect(receiverLog.args.tokenValues[0]).to.be.bignumber.equal(totalValuesTransferred[0]); + // note - if the `extraData` is ignored then the receiver log should ignore it as well. + expect(receiverLog.args.data).to.be.deep.equal(nullReceiverCallbackData); + // check balances after transfer + const expectedFinalBalances = [ + expectedInitialBalances[0].minus(totalValuesTransferred[0]), + expectedInitialBalances[1].plus(totalValuesTransferred[0]), + ]; + await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances); + }); it('should successfully transfer value and ignore extra assetData', async () => { // setup test parameters const tokenHolders = [spender, receiverContract]; From 384114d3c7d3b8999efb510102bfe7700be65054 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Tue, 19 Mar 2019 15:01:24 -0700 Subject: [PATCH 38/95] Added Dutch Auction address on mainnet to contract-addresses package --- packages/contract-addresses/src/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/contract-addresses/src/index.ts b/packages/contract-addresses/src/index.ts index 4f580e8256..d9541c4e46 100644 --- a/packages/contract-addresses/src/index.ts +++ b/packages/contract-addresses/src/index.ts @@ -32,8 +32,7 @@ const networkToAddresses: { [networkId: number]: ContractAddresses } = { assetProxyOwner: '0x17992e4ffb22730138e4b62aaa6367fa9d3699a6', forwarder: '0x5468a1dc173652ee28d249c271fa9933144746b1', orderValidator: '0x9463e518dea6810309563c81d5266c1b1d149138', - // @todo hysz/dekz: Add mainnet address once deployed. - dutchAuction: NULL_ADDRESS, + dutchAuction: '0x07b32a653754945666cfca91168bb207323dfe67', }, 3: { erc20Proxy: '0xb1408f4c245a23c31b98d2c626777d4c0d766caa', From 8c3abf347323017372271ed00a5ea1ee2574da6a Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Tue, 19 Mar 2019 15:03:07 -0700 Subject: [PATCH 39/95] Updated changelog --- packages/contract-addresses/CHANGELOG.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/contract-addresses/CHANGELOG.json b/packages/contract-addresses/CHANGELOG.json index ec04c440da..b3e9a79a63 100644 --- a/packages/contract-addresses/CHANGELOG.json +++ b/packages/contract-addresses/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "2.2.3", + "changes": [ + { + "note": "Added Dutch Auction mainnet address", + "pr": 1715 + } + ] + }, { "version": "2.2.2", "changes": [ From 7ed3afe9f0e7da77bada164de9937311eec4a2e1 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Tue, 19 Mar 2019 15:35:08 -0700 Subject: [PATCH 40/95] Updated function signature for ERC1155 ProxyId - ERC1155Token -> ERC1155Assets --- contracts/asset-proxy/contracts/src/ERC1155Proxy.sol | 2 +- contracts/asset-proxy/test/erc1155_proxy.ts | 5 ++--- packages/order-utils/CHANGELOG.json | 2 +- packages/order-utils/src/asset_data_utils.ts | 4 ++-- packages/order-utils/test/asset_data_utils_test.ts | 4 ++-- packages/types/src/index.ts | 2 +- 6 files changed, 9 insertions(+), 10 deletions(-) diff --git a/contracts/asset-proxy/contracts/src/ERC1155Proxy.sol b/contracts/asset-proxy/contracts/src/ERC1155Proxy.sol index 1249616714..4a80754532 100644 --- a/contracts/asset-proxy/contracts/src/ERC1155Proxy.sol +++ b/contracts/asset-proxy/contracts/src/ERC1155Proxy.sol @@ -26,7 +26,7 @@ contract ERC1155Proxy is { // Id of this proxy. - bytes4 constant internal PROXY_ID = bytes4(keccak256("ERC1155Token(address,uint256[],uint256[],bytes)")); + bytes4 constant internal PROXY_ID = bytes4(keccak256("ERC1155Assets(address,uint256[],uint256[],bytes)")); function () external diff --git a/contracts/asset-proxy/test/erc1155_proxy.ts b/contracts/asset-proxy/test/erc1155_proxy.ts index f55e11024f..f0044125f4 100644 --- a/contracts/asset-proxy/test/erc1155_proxy.ts +++ b/contracts/asset-proxy/test/erc1155_proxy.ts @@ -15,7 +15,7 @@ import { web3Wrapper, } from '@0x/contracts-test-utils'; import { BlockchainLifecycle } from '@0x/dev-utils'; -import { RevertReason } from '@0x/types'; +import { AssetProxyId, RevertReason } from '@0x/types'; import { BigNumber } from '@0x/utils'; import * as chai from 'chai'; import { LogWithDecodedArgs } from 'ethereum-types'; @@ -123,8 +123,7 @@ describe('ERC1155Proxy', () => { }); it('should have an id of 0x9645780d', async () => { const proxyId = await erc1155Proxy.getProxyId.callAsync(); - // proxy computed using -- bytes4(keccak256("erc1155Token(address,uint256[],uint256[],bytes)")); - const expectedProxyId = '0x9645780d'; + const expectedProxyId = AssetProxyId.ERC1155; expect(proxyId).to.equal(expectedProxyId); }); }); diff --git a/packages/order-utils/CHANGELOG.json b/packages/order-utils/CHANGELOG.json index 62f4284359..41f4088d95 100644 --- a/packages/order-utils/CHANGELOG.json +++ b/packages/order-utils/CHANGELOG.json @@ -7,7 +7,7 @@ "pr": 1705 }, { - "note": "Added encoding/decoding fdor ERC1155 asset data", + "note": "Added encoding/decoding for ERC1155 asset data", "pr": 1661 } ] diff --git a/packages/order-utils/src/asset_data_utils.ts b/packages/order-utils/src/asset_data_utils.ts index 2acf57d5f6..799716a6d4 100644 --- a/packages/order-utils/src/asset_data_utils.ts +++ b/packages/order-utils/src/asset_data_utils.ts @@ -91,7 +91,7 @@ export const assetDataUtils = { tokenValues: BigNumber[], callbackData: string, ): string { - const abiEncoder = AbiEncoder.createMethod('ERC1155Token', ERC1155AssetDataAbi); + const abiEncoder = AbiEncoder.createMethod('ERC1155Assets', ERC1155AssetDataAbi); const args = [tokenAddress, tokenIds, tokenValues, callbackData]; const assetData = abiEncoder.encode(args, encodingRules); return assetData; @@ -106,7 +106,7 @@ export const assetDataUtils = { if (assetProxyId !== AssetProxyId.ERC1155) { throw new Error(`Invalid assetProxyId. Expected '${AssetProxyId.ERC1155}', got '${assetProxyId}'`); } - const abiEncoder = AbiEncoder.createMethod('ERC1155Token', ERC1155AssetDataAbi); + const abiEncoder = AbiEncoder.createMethod('ERC1155Assets', ERC1155AssetDataAbi); // tslint:disable-next-line:no-unnecessary-type-assertion const decodedAssetData = abiEncoder.decode(assetData, decodingRules) as ERC1155AssetDataNoProxyId; return { diff --git a/packages/order-utils/test/asset_data_utils_test.ts b/packages/order-utils/test/asset_data_utils_test.ts index 203956948e..96ea36307a 100644 --- a/packages/order-utils/test/asset_data_utils_test.ts +++ b/packages/order-utils/test/asset_data_utils_test.ts @@ -27,7 +27,7 @@ const KNOWN_ERC1155_ENCODING = { callbackData: '0x025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000001', assetData: - '0x9645780d0000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000003e90000000000000000000000000000000000000000000000000000000000002711000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000007d10000000000000000000000000000000000000000000000000000000000004e210000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000', + '0xa7cb5fb70000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000003e90000000000000000000000000000000000000000000000000000000000002711000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000007d10000000000000000000000000000000000000000000000000000000000004e210000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000', }; const KNOWN_MULTI_ASSET_ENCODING = { amounts: [new BigNumber(70), new BigNumber(1), new BigNumber(18)], @@ -37,7 +37,7 @@ const KNOWN_MULTI_ASSET_ENCODING = { KNOWN_ERC1155_ENCODING.assetData, ], assetData: - '0x94cfcdd7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000024f47261b00000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c4800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002049645780d0000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000003e90000000000000000000000000000000000000000000000000000000000002711000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000007d10000000000000000000000000000000000000000000000000000000000004e210000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c4800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', + '0x94cfcdd7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000024f47261b00000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000204a7cb5fb70000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000003e90000000000000000000000000000000000000000000000000000000000002711000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000007d10000000000000000000000000000000000000000000000000000000000004e210000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c4800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', }; describe('assetDataUtils', () => { diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index f694575f6c..b61fb7db69 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -163,7 +163,7 @@ export enum AssetProxyId { ERC20 = '0xf47261b0', ERC721 = '0x02571792', MultiAsset = '0x94cfcdd7', - ERC1155 = '0x9645780d', + ERC1155 = '0xa7cb5fb7', } export interface ERC20AssetData { From 346c6fc5908a2f77cda908bdecccc208c5e27afa Mon Sep 17 00:00:00 2001 From: askeluv Date: Wed, 20 Mar 2019 12:41:56 +0800 Subject: [PATCH 41/95] Deal with failing Github API for issues --- .../pipeline/src/data_sources/github/index.ts | 5 ++- .../pipeline/src/parsers/github/issues.ts | 39 ++++++++++--------- packages/pipeline/src/scripts/pull_github.ts | 17 ++++++-- 3 files changed, 38 insertions(+), 23 deletions(-) diff --git a/packages/pipeline/src/data_sources/github/index.ts b/packages/pipeline/src/data_sources/github/index.ts index 63aff91d4b..374db087ff 100644 --- a/packages/pipeline/src/data_sources/github/index.ts +++ b/packages/pipeline/src/data_sources/github/index.ts @@ -1,4 +1,4 @@ -import { fetchAsync } from '@0x/utils'; +import { fetchAsync, logUtils } from '@0x/utils'; export interface GithubRepoResponse { full_name: string; @@ -136,6 +136,9 @@ export class GithubSource { }&state=all&per_page=100&page=${page}`; const resp = await fetchAsync(url); const respJson: GithubIssueResponse[] = await resp.json(); + if (!respJson[0]) { + logUtils.log(respJson); + } return respJson; } } diff --git a/packages/pipeline/src/parsers/github/issues.ts b/packages/pipeline/src/parsers/github/issues.ts index 62e1582f48..d94c70dfbe 100644 --- a/packages/pipeline/src/parsers/github/issues.ts +++ b/packages/pipeline/src/parsers/github/issues.ts @@ -11,22 +11,25 @@ export function parseGithubIssues( observedTimestamp: number, repoFullName: string, ): GithubIssue[] { - return response.map(issue => { - const parsedIssue = new GithubIssue(); - parsedIssue.observedTimestamp = observedTimestamp; - parsedIssue.repoFullName = repoFullName; - parsedIssue.issueNumber = issue.number; - parsedIssue.title = issue.title; - parsedIssue.state = issue.state; - parsedIssue.locked = issue.locked; - parsedIssue.assigneeLogin = issue.assignee ? issue.assignee.login : undefined; - parsedIssue.userLogin = issue.user.login; - parsedIssue.userType = issue.user.type; - parsedIssue.userSiteAdmin = issue.user.site_admin; - parsedIssue.comments = issue.comments; - parsedIssue.createdAt = Date.parse(issue.created_at); - parsedIssue.updatedAt = Date.parse(issue.updated_at); - parsedIssue.closedAt = issue.closed_at ? Date.parse(issue.closed_at) : undefined; - return parsedIssue; - }); + const emptyResponse: GithubIssue[] = []; + return response && response[0] + ? response.map(issue => { + const parsedIssue = new GithubIssue(); + parsedIssue.observedTimestamp = observedTimestamp; + parsedIssue.repoFullName = repoFullName; + parsedIssue.issueNumber = issue.number; + parsedIssue.title = issue.title; + parsedIssue.state = issue.state; + parsedIssue.locked = issue.locked; + parsedIssue.assigneeLogin = issue.assignee ? issue.assignee.login : undefined; + parsedIssue.userLogin = issue.user.login; + parsedIssue.userType = issue.user.type; + parsedIssue.userSiteAdmin = issue.user.site_admin; + parsedIssue.comments = issue.comments; + parsedIssue.createdAt = Date.parse(issue.created_at); + parsedIssue.updatedAt = Date.parse(issue.updated_at); + parsedIssue.closedAt = issue.closed_at ? Date.parse(issue.closed_at) : undefined; + return parsedIssue; + }) + : emptyResponse; } diff --git a/packages/pipeline/src/scripts/pull_github.ts b/packages/pipeline/src/scripts/pull_github.ts index 5aed884b51..7788829870 100644 --- a/packages/pipeline/src/scripts/pull_github.ts +++ b/packages/pipeline/src/scripts/pull_github.ts @@ -78,11 +78,20 @@ let connection: Connection; const GithubIssueRepository = connection.getRepository(GithubIssue); numberOfRecords = RECORDS_PER_PAGE; page = 1; + const maxAttempts = 3; + const repoFullName = `${GITHUB_OWNER}/${GITHUB_REPO}`; while (numberOfRecords === RECORDS_PER_PAGE) { - logUtils.log(`Fetching Github issues from API, page: ${page}.`); - const rawIssues = await githubSource.getGithubIssuesAsync(page); - const repoFullName = `${GITHUB_OWNER}/${GITHUB_REPO}`; - const issues = parseGithubIssues(rawIssues, observedTimestamp, repoFullName); + let rawIssues; + let issues; + let attempt = 1; + do { + logUtils.log(`Fetching Github issues from API, page: ${page}.`); + if (attempt > 1) { + logUtils.log(`Attempt #${attempt}`); + } + rawIssues = await githubSource.getGithubIssuesAsync(page); + issues = parseGithubIssues(rawIssues, observedTimestamp, repoFullName); + } while (issues.length === 0 && attempt++ < maxAttempts); // Github API returns no records numberOfRecords = issues.length; page++; logUtils.log(`Saving ${issues.length} issues to database.`); From 05424c9f33e8ad7475ae40ef4b46bd7b9b384b8e Mon Sep 17 00:00:00 2001 From: Ognyan Chikov Date: Wed, 20 Mar 2019 11:37:38 +0200 Subject: [PATCH 42/95] Fix documentation typos --- packages/website/md/docs/sol_coverage/usage.md | 4 ++-- packages/website/md/docs/sol_profiler/usage.md | 4 ++-- packages/website/md/docs/sol_trace/usage.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/website/md/docs/sol_coverage/usage.md b/packages/website/md/docs/sol_coverage/usage.md index 89cee45122..202bb1aad8 100644 --- a/packages/website/md/docs/sol_coverage/usage.md +++ b/packages/website/md/docs/sol_coverage/usage.md @@ -8,10 +8,10 @@ In order to use `CoverageSubprovider` with your favorite framework you need to p ### Sol-compiler -If you are generating your artifacts with [@0x/sol-compiler](https://0x.org/docs/sol-compiler) you can use the `SolCompilerArtifactsAdapter` we've implemented for you. +If you are generating your artifacts with [@0x/sol-compiler](https://0x.org/docs/sol-compiler) you can use the `SolCompilerArtifactAdapter` we've implemented for you. ```typescript -import { SolCompilerArtifactsAdapter } from '@0x/sol-coverage'; +import { SolCompilerArtifactAdapter } from '@0x/sol-coverage'; // Both artifactsDir and contractsDir are optional and will be fetched from compiler.json if not passed in const artifactAdapter = new SolCompilerArtifactAdapter(artifactsDir, contractsDir); ``` diff --git a/packages/website/md/docs/sol_profiler/usage.md b/packages/website/md/docs/sol_profiler/usage.md index 0fbc31bc10..51e0b7bb73 100644 --- a/packages/website/md/docs/sol_profiler/usage.md +++ b/packages/website/md/docs/sol_profiler/usage.md @@ -8,10 +8,10 @@ In order to use `ProfilerSubprovider` with your favorite framework you need to p ### Sol-compiler -If you are generating your artifacts with [@0x/sol-compiler](https://0x.org/docs/sol-compiler) you can use the `SolCompilerArtifactsAdapter` we've implemented for you. +If you are generating your artifacts with [@0x/sol-compiler](https://0x.org/docs/sol-compiler) you can use the `SolCompilerArtifactAdapter` we've implemented for you. ```typescript -import { SolCompilerArtifactsAdapter } from '@0x/sol-profiler'; +import { SolCompilerArtifactAdapter } from '@0x/sol-profiler'; // Both artifactsDir and contractsDir are optional and will be fetched from compiler.json if not passed in const artifactAdapter = new SolCompilerArtifactAdapter(artifactsDir, contractsDir); ``` diff --git a/packages/website/md/docs/sol_trace/usage.md b/packages/website/md/docs/sol_trace/usage.md index d117a0faf1..0afe8c653d 100644 --- a/packages/website/md/docs/sol_trace/usage.md +++ b/packages/website/md/docs/sol_trace/usage.md @@ -8,10 +8,10 @@ In order to use `RevertTraceSubprovider` with your favorite framework you need t ### Sol-compiler -If you are generating your artifacts with [@0x/sol-compiler](https://0x.org/docs/sol-compiler) you can use the `SolCompilerArtifactsAdapter` we've implemented for you. +If you are generating your artifacts with [@0x/sol-compiler](https://0x.org/docs/sol-compiler) you can use the `SolCompilerArtifactAdapter` we've implemented for you. ```typescript -import { SolCompilerArtifactsAdapter } from '@0x/sol-trace'; +import { SolCompilerArtifactAdapter } from '@0x/sol-trace'; // Both artifactsDir and contractsDir are optional and will be fetched from compiler.json if not passed in const artifactAdapter = new SolCompilerArtifactAdapter(artifactsDir, contractsDir); ``` From 54dbef2b4f281cf3ab41784ee26ee5e3b4b9a930 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Wed, 20 Mar 2019 13:31:35 +0100 Subject: [PATCH 43/95] Add semaphore around event callbacks that all modify shared state --- packages/order-watcher/package.json | 1 + .../src/order_watcher/order_watcher.ts | 21 ++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/order-watcher/package.json b/packages/order-watcher/package.json index bdb7d2a84c..7558a01052 100644 --- a/packages/order-watcher/package.json +++ b/packages/order-watcher/package.json @@ -81,6 +81,7 @@ "ethereumjs-blockstream": "6.0.0", "ethers": "~4.0.4", "lodash": "^4.17.11", + "semaphore-async-await": "^1.5.1", "websocket": "^1.0.26" }, "publishConfig": { diff --git a/packages/order-watcher/src/order_watcher/order_watcher.ts b/packages/order-watcher/src/order_watcher/order_watcher.ts index d1cab2b10d..6128a70922 100644 --- a/packages/order-watcher/src/order_watcher/order_watcher.ts +++ b/packages/order-watcher/src/order_watcher/order_watcher.ts @@ -42,6 +42,7 @@ import { ZeroExProvider, } from 'ethereum-types'; import * as _ from 'lodash'; +import { Lock } from 'semaphore-async-await'; import { orderWatcherPartialConfigSchema } from '../schemas/order_watcher_partial_config_schema'; import { OnOrderStateChangeCallback, OrderWatcherConfig, OrderWatcherError } from '../types'; @@ -84,6 +85,7 @@ export class OrderWatcher { private readonly _dependentOrderHashesTracker: DependentOrderHashesTracker; private readonly _orderStateByOrderHashCache: OrderStateByOrderHash = {}; private readonly _orderByOrderHash: OrderByOrderHash = {}; + private readonly _orderByOrderHashLock = new Lock(); private readonly _eventWatcher: EventWatcher; private readonly _provider: ZeroExProvider; private readonly _collisionResistantAbiDecoder: CollisionResistanceAbiDecoder; @@ -196,10 +198,12 @@ export class OrderWatcher { throw new Error(OrderWatcherError.SubscriptionAlreadyPresent); } this._callbackIfExists = callback; - this._eventWatcher.subscribe(this._onEventWatcherCallbackAsync.bind(this)); - this._expirationWatcher.subscribe(this._onOrderExpired.bind(this)); + this._eventWatcher.subscribe( + this._addLockToCallbackAsync.bind(this, this._onEventWatcherCallbackAsync.bind(this)), + ); + this._expirationWatcher.subscribe(this._addLockToCallbackAsync.bind(this, this._onOrderExpired.bind(this))); this._cleanupJobIntervalIdIfExists = intervalUtils.setAsyncExcludingInterval( - this._cleanupAsync.bind(this), + this._addLockToCallbackAsync.bind(this, this._cleanupAsync.bind(this)), this._cleanupJobInterval, (err: Error) => { this.unsubscribe(); @@ -229,6 +233,17 @@ export class OrderWatcher { orderCount: _.size(this._orderByOrderHash), }; } + private async _addLockToCallbackAsync(cbAsync: any, ...params: any[]): Promise { + await this._orderByOrderHashLock.acquire(); + try { + await cbAsync(...params); + await this._orderByOrderHashLock.release(); + } catch (err) { + // Make sure to releasee the lock if an error is thrown + await this._orderByOrderHashLock.release(); + throw err; + } + } private async _cleanupAsync(): Promise { for (const orderHash of _.keys(this._orderByOrderHash)) { this._cleanupOrderRelatedState(orderHash); From 7cd27cd9c83b46b97a44e1135d16de655f39b12d Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Wed, 20 Mar 2019 13:31:55 +0100 Subject: [PATCH 44/95] Make sure we reset blockchain state --- packages/order-watcher/test/order_watcher_test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/order-watcher/test/order_watcher_test.ts b/packages/order-watcher/test/order_watcher_test.ts index d272c7fa45..051c3121a9 100644 --- a/packages/order-watcher/test/order_watcher_test.ts +++ b/packages/order-watcher/test/order_watcher_test.ts @@ -175,10 +175,14 @@ describe('OrderWatcher', () => { }); }); describe('tests with cleanup', async () => { + beforeEach(async () => { + await blockchainLifecycle.startAsync(); + }); afterEach(async () => { orderWatcher.unsubscribe(); const orderHash = orderHashUtils.getOrderHashHex(signedOrder); orderWatcher.removeOrder(orderHash); + await blockchainLifecycle.revertAsync(); }); it('should emit orderStateInvalid when makerAddress allowance set to 0 for watched order', (done: DoneCallback) => { (async () => { From 941877a05ac5c94de7d709c69c38649ef983e029 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Wed, 20 Mar 2019 13:48:59 +0100 Subject: [PATCH 45/95] Fix linter --- .../order-watcher/src/order_watcher/order_watcher.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/order-watcher/src/order_watcher/order_watcher.ts b/packages/order-watcher/src/order_watcher/order_watcher.ts index 6128a70922..5ee01c42c0 100644 --- a/packages/order-watcher/src/order_watcher/order_watcher.ts +++ b/packages/order-watcher/src/order_watcher/order_watcher.ts @@ -85,7 +85,7 @@ export class OrderWatcher { private readonly _dependentOrderHashesTracker: DependentOrderHashesTracker; private readonly _orderStateByOrderHashCache: OrderStateByOrderHash = {}; private readonly _orderByOrderHash: OrderByOrderHash = {}; - private readonly _orderByOrderHashLock = new Lock(); + private readonly _lock = new Lock(); private readonly _eventWatcher: EventWatcher; private readonly _provider: ZeroExProvider; private readonly _collisionResistantAbiDecoder: CollisionResistanceAbiDecoder; @@ -234,13 +234,13 @@ export class OrderWatcher { }; } private async _addLockToCallbackAsync(cbAsync: any, ...params: any[]): Promise { - await this._orderByOrderHashLock.acquire(); + await this._lock.acquire(); try { await cbAsync(...params); - await this._orderByOrderHashLock.release(); + await this._lock.release(); } catch (err) { // Make sure to releasee the lock if an error is thrown - await this._orderByOrderHashLock.release(); + await this._lock.release(); throw err; } } @@ -508,4 +508,4 @@ export class OrderWatcher { this._callbackIfExists(null, orderState); } } -} +} // tslint:disable:max-file-line-count From 31faef70301a39d44d388506f2ed501fba28fafe Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Wed, 20 Mar 2019 14:19:25 +0100 Subject: [PATCH 46/95] Add changelog entry --- packages/order-watcher/CHANGELOG.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/order-watcher/CHANGELOG.json b/packages/order-watcher/CHANGELOG.json index 8d4e22944a..4e0015bce4 100644 --- a/packages/order-watcher/CHANGELOG.json +++ b/packages/order-watcher/CHANGELOG.json @@ -9,6 +9,10 @@ { "note": "Fix issue where ERC721 Approval events could cause a lookup on undefined object", "pr": 1692 + }, + { + "note": "Fix race-condition bugs due to async event callbacks modifying shared state", + "pr": 1718 } ] }, From 44eef5b0e07a35657c1f91da3c977afebb884f23 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Wed, 20 Mar 2019 14:31:10 +0100 Subject: [PATCH 47/95] Fix comment --- packages/order-utils/src/eip712_utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/order-utils/src/eip712_utils.ts b/packages/order-utils/src/eip712_utils.ts index 70eb071d6a..f249ba3060 100644 --- a/packages/order-utils/src/eip712_utils.ts +++ b/packages/order-utils/src/eip712_utils.ts @@ -94,7 +94,7 @@ export const eip712Utils = { }, /** * Creates an Coordiantor typedData EIP712TypedData object for use with the Coordinator extension contract - * @param zeroExTransaction A 0x transaction + * @param transaction A 0x transaction * @param verifyingContractAddress The coordinator extension contract address that will be verifying the typedData * @param txOrigin The desired `tx.origin` that should be able to submit an Ethereum txn involving this 0x transaction * @param approvalExpirationTimeSeconds The approvals expiration time From 5b8f294aafa7834434345d1e340fd692b2d888c2 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Wed, 20 Mar 2019 14:31:01 +0100 Subject: [PATCH 48/95] Update solidity-parser-antlr --- packages/sol-tracing-utils/CHANGELOG.json | 9 +++++ packages/sol-tracing-utils/package.json | 4 +-- yarn.lock | 43 +++++------------------ 3 files changed, 20 insertions(+), 36 deletions(-) diff --git a/packages/sol-tracing-utils/CHANGELOG.json b/packages/sol-tracing-utils/CHANGELOG.json index 80a3a287a3..ef6013414c 100644 --- a/packages/sol-tracing-utils/CHANGELOG.json +++ b/packages/sol-tracing-utils/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "6.0.8", + "changes": [ + { + "note": "Update solidity-parser-antlr to 0.4.2", + "pr": 1719 + } + ] + }, { "version": "6.0.7", "changes": [ diff --git a/packages/sol-tracing-utils/package.json b/packages/sol-tracing-utils/package.json index f1793d6116..4ac5d88a45 100644 --- a/packages/sol-tracing-utils/package.json +++ b/packages/sol-tracing-utils/package.json @@ -49,7 +49,7 @@ "@0x/typescript-typings": "^4.1.0", "@0x/utils": "^4.2.2", "@0x/web3-wrapper": "^6.0.2", - "@types/solidity-parser-antlr": "^0.2.0", + "@types/solidity-parser-antlr": "^0.2.3", "chalk": "^2.3.0", "ethereum-types": "^2.1.0", "ethereumjs-util": "^5.1.1", @@ -62,7 +62,7 @@ "rimraf": "^2.6.2", "semaphore-async-await": "^1.5.1", "solc": "^0.5.5", - "solidity-parser-antlr": "^0.2.12" + "solidity-parser-antlr": "^0.4.2" }, "devDependencies": { "@0x/tslint-config": "^3.0.0", diff --git a/yarn.lock b/yarn.lock index 19f79e4574..84e8cfaf81 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1841,9 +1841,9 @@ version "0.0.7" resolved "https://registry.yarnpkg.com/@types/sleep/-/sleep-0.0.7.tgz#0572b5d06978b4305671c614b0f68b4640ce7d43" -"@types/solidity-parser-antlr@^0.2.0": - version "0.2.1" - resolved "https://registry.npmjs.org/@types/solidity-parser-antlr/-/solidity-parser-antlr-0.2.1.tgz#29ff386773a72a06c8a9c40c666d2a1cea53c2ed" +"@types/solidity-parser-antlr@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@types/solidity-parser-antlr/-/solidity-parser-antlr-0.2.3.tgz#bb2d9c6511bf483afe4fc3e2714da8a924e59e3f" "@types/styled-components@4.0.0": version "4.0.0" @@ -13548,15 +13548,6 @@ react-dom@^16.3.2: object-assign "^4.1.1" prop-types "^15.6.0" -react-dom@^16.4.2: - version "16.8.4" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.4.tgz#1061a8e01a2b3b0c8160037441c3bf00a0e3bc48" - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.13.4" - react-dom@^16.5.2: version "16.5.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.2.tgz#b69ee47aa20bab5327b2b9d7c1fe2a30f2cfa9d7" @@ -13614,8 +13605,8 @@ react-highlight@0xproject/react-highlight#react-peer-deps: dependencies: highlight.js "^9.11.0" highlightjs-solidity "^1.0.5" - react "^16.4.2" - react-dom "^16.4.2" + react "^16.5.2" + react-dom "^16.5.2" react-hot-loader@^4.3.3: version "4.3.4" @@ -13860,15 +13851,6 @@ react@^16.3.2: object-assign "^4.1.1" prop-types "^15.6.0" -react@^16.4.2: - version "16.8.4" - resolved "https://registry.yarnpkg.com/react/-/react-16.8.4.tgz#fdf7bd9ae53f03a9c4cd1a371432c206be1c4768" - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.13.4" - react@^16.5.2: version "16.5.2" resolved "https://registry.yarnpkg.com/react/-/react-16.5.2.tgz#19f6b444ed139baa45609eee6dc3d318b3895d42" @@ -14740,13 +14722,6 @@ schedule@^0.5.0: dependencies: object-assign "^4.1.1" -scheduler@^0.13.4: - version "0.13.4" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.4.tgz#8fef05e7a3580c76c0364d2df5e550e4c9140298" - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - schema-utils@^0.4.4: version "0.4.7" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" @@ -15260,14 +15235,14 @@ solhint@^1.4.1: prettier "^1.14.3" prettier-plugin-solidity "^1.0.0-alpha.4" -solidity-parser-antlr@^0.2.12: - version "0.2.12" - resolved "https://registry.yarnpkg.com/solidity-parser-antlr/-/solidity-parser-antlr-0.2.12.tgz#1154f183d5cdda2c7677549ee584dbdb7fb2269c" - solidity-parser-antlr@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/solidity-parser-antlr/-/solidity-parser-antlr-0.3.3.tgz#0352e35f914095daa7eef9f3a55cf8074e28cc5b" +solidity-parser-antlr@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/solidity-parser-antlr/-/solidity-parser-antlr-0.4.2.tgz#b862eba5936e7a90b4f5f1c8eb1d33fe86650f78" + sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" From fa36c91bd62aeb9c4b8791421e08726d0d0e7b85 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Wed, 20 Mar 2019 14:50:26 +0100 Subject: [PATCH 49/95] Remove legacy entries from AST Visitor --- packages/sol-tracing-utils/src/ast_visitor.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/sol-tracing-utils/src/ast_visitor.ts b/packages/sol-tracing-utils/src/ast_visitor.ts index 27f19378bc..4187eb589a 100644 --- a/packages/sol-tracing-utils/src/ast_visitor.ts +++ b/packages/sol-tracing-utils/src/ast_visitor.ts @@ -73,15 +73,9 @@ export class ASTVisitor { public VariableDeclarationStatement(ast: Parser.VariableDeclarationStatement): void { this._visitStatement(ast); } - public Statement(ast: Parser.Statement): void { - this._visitStatement(ast); - } public WhileStatement(ast: Parser.WhileStatement): void { this._visitStatement(ast); } - public SimpleStatement(ast: Parser.SimpleStatement): void { - this._visitStatement(ast); - } public ThrowStatement(ast: Parser.ThrowStatement): void { this._visitStatement(ast); } @@ -108,9 +102,6 @@ export class ASTVisitor { public AssemblyBlock(ast: Parser.AssemblyBlock): void { this._visitStatement(ast); } - public AssemblyExpression(ast: Parser.AssemblyExpression): void { - this._visitStatement(ast); - } public AssemblyAssignment(ast: Parser.AssemblyAssignment): void { this._visitStatement(ast); } From c994afbf3cdce7807fcc4ae675f84dfaa17a0cfc Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Wed, 20 Mar 2019 15:02:49 +0100 Subject: [PATCH 50/95] Fix Pylint --- .../src/zero_ex/contract_addresses/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py b/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py index 2206e145e5..225a0d18a5 100644 --- a/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py +++ b/python-packages/contract_addresses/src/zero_ex/contract_addresses/__init__.py @@ -45,7 +45,6 @@ NETWORK_TO_ADDRESSES: Dict[NetworkId, ContractAddresses] = { order_validator="0x9463e518dea6810309563c81d5266c1b1d149138", coordinator_registry="0x45797531b873fd5e519477a070a955764c1a5b07", coordinator="0x24675738816c87ad37e712cc24f309a0c906187f", - ), NetworkId.ROPSTEN: ContractAddresses( erc20_proxy="0xb1408f4c245a23c31b98d2c626777d4c0d766caa", From 8af164dbd25c077b24bb855343aa8009cfb3f47f Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Wed, 20 Mar 2019 15:05:21 +0100 Subject: [PATCH 51/95] Attempt to fix type issue --- packages/typescript-typings/types/ganache-core/index.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/typescript-typings/types/ganache-core/index.d.ts b/packages/typescript-typings/types/ganache-core/index.d.ts index 172f634117..e3cbcdad5c 100644 --- a/packages/typescript-typings/types/ganache-core/index.d.ts +++ b/packages/typescript-typings/types/ganache-core/index.d.ts @@ -1,5 +1,5 @@ declare module 'ganache-core' { - const GanacheProvider = require('ethereum-types').GanacheProvider; + const Provider = require('ethereum-types').Provider; export interface GanacheOpts { verbose?: boolean; logger?: { @@ -13,5 +13,5 @@ declare module 'ganache-core' { vmErrorsOnRPCResponse?: boolean; db_path?: string; } - export function provider(opts: GanacheOpts): GanacheProvider; + export function provider(opts: GanacheOpts): Provider; } From 87fd3f2a82fbe483e098d2076d557facb60701fa Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 19 Mar 2019 00:19:19 -0400 Subject: [PATCH 52/95] Add `RevertReason.InvalidFreeMemoryPtr` to packages/types. --- packages/types/CHANGELOG.json | 3 +++ packages/types/src/index.ts | 2 ++ 2 files changed, 5 insertions(+) diff --git a/packages/types/CHANGELOG.json b/packages/types/CHANGELOG.json index daa51e24ca..de13fcb130 100644 --- a/packages/types/CHANGELOG.json +++ b/packages/types/CHANGELOG.json @@ -17,6 +17,9 @@ { "note": "Add `RevertReason.SignatureInvalid` thrown by Coordinator", "pr": 1705 + }, + { + "note": "Add `RevertReason.InvalidFreeMemoryPtr` thrown by LibAddressArray" } ] }, diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index f694575f6c..4b0e95b6ca 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -283,6 +283,8 @@ export enum RevertReason { TxFullyConfirmed = 'TX_FULLY_CONFIRMED', TxNotFullyConfirmed = 'TX_NOT_FULLY_CONFIRMED', TimeLockIncomplete = 'TIME_LOCK_INCOMPLETE', + // LibAddressArray + InvalidFreeMemoryPtr = 'INVALID_FREE_MEMORY_PTR', // DutchAuction AuctionInvalidAmount = 'INVALID_AMOUNT', AuctionExpired = 'AUCTION_EXPIRED', From b8925baa885390f5c292e9240528a00770f65d9d Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 19 Mar 2019 00:22:55 -0400 Subject: [PATCH 53/95] Add unit tests for contracts/utils/LibAddressArray. Fix `LibAddressArray.indexOf` returning wrong index. --- contracts/utils/CHANGELOG.json | 6 + contracts/utils/compiler.json | 1 + .../utils/contracts/src/LibAddressArray.sol | 4 +- .../contracts/test/TestLibAddressArray.sol | 114 +++++++++++++ contracts/utils/package.json | 2 +- contracts/utils/src/artifacts.ts | 4 + contracts/utils/src/wrappers.ts | 2 + contracts/utils/test/lib_address_array.ts | 156 ++++++++++++++++++ contracts/utils/tsconfig.json | 2 + 9 files changed, 288 insertions(+), 3 deletions(-) create mode 100644 contracts/utils/contracts/test/TestLibAddressArray.sol create mode 100644 contracts/utils/test/lib_address_array.ts diff --git a/contracts/utils/CHANGELOG.json b/contracts/utils/CHANGELOG.json index ecec7db642..9f08c82897 100644 --- a/contracts/utils/CHANGELOG.json +++ b/contracts/utils/CHANGELOG.json @@ -13,6 +13,12 @@ { "note": "Added Address.sol with test for whether or not an address is a contract", "pr": 1657 + }, + { + "note": "Add unit tests for `LibAddressArray`" + }, + { + "note": "Fix `LibAddressArray.indexOf` returning incorrect index." } ] }, diff --git a/contracts/utils/compiler.json b/contracts/utils/compiler.json index 4632bf57b7..8cab311419 100644 --- a/contracts/utils/compiler.json +++ b/contracts/utils/compiler.json @@ -30,6 +30,7 @@ "src/SafeMath.sol", "src/interfaces/IOwnable.sol", "test/TestConstants.sol", + "test/TestLibAddressArray.sol", "test/TestLibBytes.sol" ] } diff --git a/contracts/utils/contracts/src/LibAddressArray.sol b/contracts/utils/contracts/src/LibAddressArray.sol index 0d4ebb544e..259dc558aa 100644 --- a/contracts/utils/contracts/src/LibAddressArray.sol +++ b/contracts/utils/contracts/src/LibAddressArray.sol @@ -30,7 +30,7 @@ library LibAddressArray { /// @param addressArray Array of addresses. /// @param addressToAppend Address to append. /// @return Array of addresses: [... addressArray, addressToAppend] - function append(address[] memory addressArray, address addressToAppend) + function append(address[] memory addressArray, address addressToAppend) internal pure returns (address[] memory) @@ -148,7 +148,7 @@ library LibAddressArray { if eq(target, arrayElement) { // Set success and index success := 1 - index := div(i, 32) + index := div(sub(i, arrayContentsStart), 32) // Break loop i := arrayContentsEnd } diff --git a/contracts/utils/contracts/test/TestLibAddressArray.sol b/contracts/utils/contracts/test/TestLibAddressArray.sol new file mode 100644 index 0000000000..3783442ac3 --- /dev/null +++ b/contracts/utils/contracts/test/TestLibAddressArray.sol @@ -0,0 +1,114 @@ +/* + + Copyright 2018 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity ^0.5.5; + +import "../src/LibAddressArray.sol"; + + +contract TestLibAddressArray { + + using LibAddressArray for address[]; + + /// @dev Append a new address to an array of addresses. + /// The `addressArray` may need to be reallocated to make space + /// for the new address. Because of this we return the resulting + /// memory location of `addressArray`. + /// @param addressArray Array of addresses. + /// @param addressToAppend Address to append. + /// @return Array of addresses: [... addressArray, addressToAppend] + function publicAppend(address[] memory addressArray, address addressToAppend) + public + pure + returns (address[] memory) + { + return addressArray.append(addressToAppend); + } + + /// @dev Creates an in-memory copy of `addressArray`, + /// moves the free memory pointer by `freeMemOffset` bytes, + /// then performs the append. + /// This tests the behavior of the address array being reallocated if + /// the memory immediately after the old array is claimed. + /// @param addressArray Array of addresses. + /// @param freeMemOffset Number of (signed) bytes to offset the free memory pointer (0x40). + /// @param addressToAppend Address to append. + /// @return The new address array. + /// @return The memory address of the old address array. + /// @return The memory address of the new address array. + function testAppendRealloc( + address[] memory addressArray, + int256 freeMemOffset, + address addressToAppend + ) + public + pure + returns ( + address[] memory result, + uint256 oldArrayMemStart, + uint256 newArrayMemStart + ) + { + // Create a copy of the array. + result = new address[](addressArray.length); + assembly { + oldArrayMemStart := result + let length := mload(addressArray) + for { let i := 0 } lt(i, length) { i := add(i, 1) } { + mstore(add(result, mul(add(i, 1), 32)), + mload(add(addressArray, mul(add(i, 1), 32)))) + } + + // Move the free memory pointer. + mstore(0x40, add(mload(0x40), freeMemOffset)) + } + + // Call append. + result = result.append(addressToAppend); + + // Get the new array memory address. + assembly { + newArrayMemStart := result + } + } + + /// @dev Checks if an address array contains the target address. + /// @param addressArray Array of addresses. + /// @param target Address to search for in array. + /// @return True if the addressArray contains the target. + function publicContains(address[] memory addressArray, address target) + public + pure + returns (bool success) + { + return addressArray.contains(target); + } + + /// @dev Finds the index of an address within an array. + /// @param addressArray Array of addresses. + /// @param target Address to search for in array. + /// @return Existence and index of the target in the array. + function publicIndexOf(address[] memory addressArray, address target) + public + pure + returns (bool success, uint256 index) + { + (success, index) = addressArray.indexOf(target); + } + +} diff --git a/contracts/utils/package.json b/contracts/utils/package.json index 3d83834965..5f5098cf0c 100644 --- a/contracts/utils/package.json +++ b/contracts/utils/package.json @@ -33,7 +33,7 @@ "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "./generated-artifacts/@(IOwnable|LibBytes|Ownable|ReentrancyGuard|SafeMath|TestConstants|TestLibBytes).json", + "abis": "./generated-artifacts/@(Address|IOwnable|LibBytes|Ownable|ReentrancyGuard|SafeMath|TestConstants|TestLibAddressArray|TestLibBytes).json", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { diff --git a/contracts/utils/src/artifacts.ts b/contracts/utils/src/artifacts.ts index 15a1abedfc..04ebb5b525 100644 --- a/contracts/utils/src/artifacts.ts +++ b/contracts/utils/src/artifacts.ts @@ -5,14 +5,17 @@ */ import { ContractArtifact } from 'ethereum-types'; +import * as Address from '../generated-artifacts/Address.json'; import * as IOwnable from '../generated-artifacts/IOwnable.json'; import * as LibBytes from '../generated-artifacts/LibBytes.json'; import * as Ownable from '../generated-artifacts/Ownable.json'; import * as ReentrancyGuard from '../generated-artifacts/ReentrancyGuard.json'; import * as SafeMath from '../generated-artifacts/SafeMath.json'; import * as TestConstants from '../generated-artifacts/TestConstants.json'; +import * as TestLibAddressArray from '../generated-artifacts/TestLibAddressArray.json'; import * as TestLibBytes from '../generated-artifacts/TestLibBytes.json'; export const artifacts = { + Address: Address as ContractArtifact, LibBytes: LibBytes as ContractArtifact, Ownable: Ownable as ContractArtifact, ReentrancyGuard: ReentrancyGuard as ContractArtifact, @@ -20,4 +23,5 @@ export const artifacts = { IOwnable: IOwnable as ContractArtifact, TestConstants: TestConstants as ContractArtifact, TestLibBytes: TestLibBytes as ContractArtifact, + TestLibAddressArray: TestLibAddressArray as ContractArtifact, }; diff --git a/contracts/utils/src/wrappers.ts b/contracts/utils/src/wrappers.ts index 8748cb074d..91a90bec6c 100644 --- a/contracts/utils/src/wrappers.ts +++ b/contracts/utils/src/wrappers.ts @@ -3,10 +3,12 @@ * Warning: This file is auto-generated by contracts-gen. Don't edit manually. * ----------------------------------------------------------------------------- */ +export * from '../generated-wrappers/address'; export * from '../generated-wrappers/i_ownable'; export * from '../generated-wrappers/lib_bytes'; export * from '../generated-wrappers/ownable'; export * from '../generated-wrappers/reentrancy_guard'; export * from '../generated-wrappers/safe_math'; export * from '../generated-wrappers/test_constants'; +export * from '../generated-wrappers/test_lib_address_array'; export * from '../generated-wrappers/test_lib_bytes'; diff --git a/contracts/utils/test/lib_address_array.ts b/contracts/utils/test/lib_address_array.ts new file mode 100644 index 0000000000..a7d462f374 --- /dev/null +++ b/contracts/utils/test/lib_address_array.ts @@ -0,0 +1,156 @@ +import { + addressUtils, + chaiSetup, + expectContractCallFailedAsync, + provider, + txDefaults, + web3Wrapper, +} from '@0x/contracts-test-utils'; +import { BlockchainLifecycle } from '@0x/dev-utils'; +import { RevertReason } from '@0x/types'; +import { BigNumber } from '@0x/utils'; +import * as chai from 'chai'; +import * as _ from 'lodash'; + +import { artifacts, TestLibAddressArrayContract } from '../src'; + +chaiSetup.configure(); +const expect = chai.expect; +const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper); + +describe('LibAddressArray', () => { + let lib: TestLibAddressArrayContract; + + before(async () => { + await blockchainLifecycle.startAsync(); + }); + after(async () => { + await blockchainLifecycle.revertAsync(); + }); + before(async () => { + // Deploy LibAddressArray + lib = await TestLibAddressArrayContract.deployFrom0xArtifactAsync( + artifacts.TestLibAddressArray, + provider, + txDefaults, + ); + }); + beforeEach(async () => { + await blockchainLifecycle.startAsync(); + }); + afterEach(async () => { + await blockchainLifecycle.revertAsync(); + }); + + describe('append', () => { + it('should append to empty array', async () => { + const addr = addressUtils.generatePseudoRandomAddress(); + const result = await lib.publicAppend.callAsync([], addr); + const expected = [addr]; + expect(result).to.deep.equal(expected); + }); + + it('should append to non-empty array', async () => { + const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); + const addr = addressUtils.generatePseudoRandomAddress(); + const expected = [...arr, addr]; + const result = await lib.publicAppend.callAsync(arr, addr); + expect(result).to.deep.equal(expected); + }); + + it('should revert if the free memory pointer was moved to before the end of the array', async () => { + const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); + const addr = addressUtils.generatePseudoRandomAddress(); + return expectContractCallFailedAsync( + lib.testAppendRealloc.callAsync(arr, new BigNumber(-1), addr), + RevertReason.InvalidFreeMemoryPtr, + ); + }); + + it('should keep the same memory address if free memory pointer does not move', async () => { + const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); + const addr = addressUtils.generatePseudoRandomAddress(); + const expected = [...arr, addr]; + const [result, oldArrayMemStart, newArrayMemStart] = await lib.testAppendRealloc.callAsync( + arr, + new BigNumber(0), + addr, + ); + expect(result).to.deep.equal(expected); + expect(newArrayMemStart).bignumber.to.be.equal(oldArrayMemStart); + }); + + it('should change memory address if free memory pointer advances', async () => { + const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); + const addr = addressUtils.generatePseudoRandomAddress(); + const expected = [...arr, addr]; + const [result, oldArrayMemStart, newArrayMemStart] = await lib.testAppendRealloc.callAsync( + arr, + new BigNumber(1), + addr, + ); + expect(result).to.deep.equal(expected); + expect(newArrayMemStart).bignumber.to.not.be.equal(oldArrayMemStart); + }); + }); + + describe('contains', () => { + it('should return false on an empty array', async () => { + const addr = addressUtils.generatePseudoRandomAddress(); + const isFound = await lib.publicContains.callAsync([], addr); + expect(isFound).to.equal(false); + }); + + it('should return false on a missing item', async () => { + const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); + const addr = addressUtils.generatePseudoRandomAddress(); + const isFound = await lib.publicContains.callAsync(arr, addr); + expect(isFound).to.equal(false); + }); + + it('should return true on an included item', async () => { + const arr = _.times(4, () => addressUtils.generatePseudoRandomAddress()); + const addr = _.sample(arr) as string; + const isFound = await lib.publicContains.callAsync(arr, addr); + expect(isFound).to.equal(true); + }); + + it('should return true on the only item in the array', async () => { + const arr = _.times(1, () => addressUtils.generatePseudoRandomAddress()); + const isFound = await lib.publicContains.callAsync(arr, arr[0]); + expect(isFound).to.equal(true); + }); + }); + + describe('indexOf', () => { + it('should fail on an empty array', async () => { + const addr = addressUtils.generatePseudoRandomAddress(); + const [isSuccess] = await lib.publicIndexOf.callAsync([], addr); + expect(isSuccess).to.equal(false); + }); + + it('should fail on a missing item', async () => { + const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); + const addr = addressUtils.generatePseudoRandomAddress(); + const [isSuccess] = await lib.publicIndexOf.callAsync(arr, addr); + expect(isSuccess).to.equal(false); + }); + + it('should succeed on an included item', async () => { + const arr = _.times(4, () => addressUtils.generatePseudoRandomAddress()); + const expectedIndexOf = _.random(0, arr.length - 1); + const addr = arr[expectedIndexOf]; + const [isSuccess, index] = await lib.publicIndexOf.callAsync(arr, addr); + expect(isSuccess).to.equal(true); + expect(index).bignumber.to.equal(expectedIndexOf); + }); + + it('should succeed on the only item in the array', async () => { + const arr = _.times(1, () => addressUtils.generatePseudoRandomAddress()); + const [isSuccess, index] = await lib.publicIndexOf.callAsync(arr, arr[0]); + expect(isSuccess).to.equal(true); + expect(index).bignumber.to.equal(0); + }); + }); +}); +// tslint:disable:max-file-line-count diff --git a/contracts/utils/tsconfig.json b/contracts/utils/tsconfig.json index efd71ff937..dce54b101e 100644 --- a/contracts/utils/tsconfig.json +++ b/contracts/utils/tsconfig.json @@ -3,12 +3,14 @@ "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], "files": [ + "generated-artifacts/Address.json", "generated-artifacts/IOwnable.json", "generated-artifacts/LibBytes.json", "generated-artifacts/Ownable.json", "generated-artifacts/ReentrancyGuard.json", "generated-artifacts/SafeMath.json", "generated-artifacts/TestConstants.json", + "generated-artifacts/TestLibAddressArray.json", "generated-artifacts/TestLibBytes.json" ], "exclude": ["./deploy/solc/solc_bin"] From 78b9a45158ba537e3bac698476803cfbd59b2e97 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Tue, 19 Mar 2019 01:00:30 -0400 Subject: [PATCH 54/95] Add PR#s to changelogs. --- contracts/utils/CHANGELOG.json | 6 ++++-- packages/types/CHANGELOG.json | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/contracts/utils/CHANGELOG.json b/contracts/utils/CHANGELOG.json index 9f08c82897..c597213ec4 100644 --- a/contracts/utils/CHANGELOG.json +++ b/contracts/utils/CHANGELOG.json @@ -15,10 +15,12 @@ "pr": 1657 }, { - "note": "Add unit tests for `LibAddressArray`" + "note": "Add unit tests for `LibAddressArray`", + "pr": 1712 }, { - "note": "Fix `LibAddressArray.indexOf` returning incorrect index." + "note": "Fix `LibAddressArray.indexOf` returning incorrect index.", + "pr": 1712 } ] }, diff --git a/packages/types/CHANGELOG.json b/packages/types/CHANGELOG.json index de13fcb130..f442eef06c 100644 --- a/packages/types/CHANGELOG.json +++ b/packages/types/CHANGELOG.json @@ -19,7 +19,8 @@ "pr": 1705 }, { - "note": "Add `RevertReason.InvalidFreeMemoryPtr` thrown by LibAddressArray" + "note": "Add `RevertReason.InvalidFreeMemoryPtr` thrown by LibAddressArray", + "pr": 1712 } ] }, From 6ed1412bdd73c4e3a6c1d186a599bd397cd84590 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 20 Mar 2019 10:19:15 -0400 Subject: [PATCH 55/95] Remove unnecessary copy operation in `TestLibAddressArray.testAppendRealloc()`. Test explicitly for newly allocated address in LibAddressArray "append" tests. --- .../contracts/test/TestLibAddressArray.sol | 16 ++++------------ contracts/utils/test/lib_address_array.ts | 19 +++++++++++++------ 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/contracts/utils/contracts/test/TestLibAddressArray.sol b/contracts/utils/contracts/test/TestLibAddressArray.sol index 3783442ac3..8f5e2b0868 100644 --- a/contracts/utils/contracts/test/TestLibAddressArray.sol +++ b/contracts/utils/contracts/test/TestLibAddressArray.sol @@ -40,8 +40,7 @@ contract TestLibAddressArray { return addressArray.append(addressToAppend); } - /// @dev Creates an in-memory copy of `addressArray`, - /// moves the free memory pointer by `freeMemOffset` bytes, + /// @dev Moves the free memory pointer by `freeMemOffset` bytes, /// then performs the append. /// This tests the behavior of the address array being reallocated if /// the memory immediately after the old array is claimed. @@ -64,22 +63,15 @@ contract TestLibAddressArray { uint256 newArrayMemStart ) { - // Create a copy of the array. - result = new address[](addressArray.length); assembly { - oldArrayMemStart := result - let length := mload(addressArray) - for { let i := 0 } lt(i, length) { i := add(i, 1) } { - mstore(add(result, mul(add(i, 1), 32)), - mload(add(addressArray, mul(add(i, 1), 32)))) - } - + // Remember the original memory address of the array. + oldArrayMemStart := addressArray // Move the free memory pointer. mstore(0x40, add(mload(0x40), freeMemOffset)) } // Call append. - result = result.append(addressToAppend); + result = addressArray.append(addressToAppend); // Get the new array memory address. assembly { diff --git a/contracts/utils/test/lib_address_array.ts b/contracts/utils/test/lib_address_array.ts index a7d462f374..536229c049 100644 --- a/contracts/utils/test/lib_address_array.ts +++ b/contracts/utils/test/lib_address_array.ts @@ -61,8 +61,9 @@ describe('LibAddressArray', () => { it('should revert if the free memory pointer was moved to before the end of the array', async () => { const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); const addr = addressUtils.generatePseudoRandomAddress(); + const freeMemOffset = new BigNumber(-1); return expectContractCallFailedAsync( - lib.testAppendRealloc.callAsync(arr, new BigNumber(-1), addr), + lib.testAppendRealloc.callAsync(arr, freeMemOffset, addr), RevertReason.InvalidFreeMemoryPtr, ); }); @@ -70,10 +71,11 @@ describe('LibAddressArray', () => { it('should keep the same memory address if free memory pointer does not move', async () => { const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); const addr = addressUtils.generatePseudoRandomAddress(); + const freeMemOffset = new BigNumber(0); const expected = [...arr, addr]; const [result, oldArrayMemStart, newArrayMemStart] = await lib.testAppendRealloc.callAsync( arr, - new BigNumber(0), + freeMemOffset, addr, ); expect(result).to.deep.equal(expected); @@ -83,14 +85,19 @@ describe('LibAddressArray', () => { it('should change memory address if free memory pointer advances', async () => { const arr = _.times(3, () => addressUtils.generatePseudoRandomAddress()); const addr = addressUtils.generatePseudoRandomAddress(); - const expected = [...arr, addr]; + const freeMemOffset = new BigNumber(1); + const expectedArray = [...arr, addr]; const [result, oldArrayMemStart, newArrayMemStart] = await lib.testAppendRealloc.callAsync( arr, - new BigNumber(1), + freeMemOffset, addr, ); - expect(result).to.deep.equal(expected); - expect(newArrayMemStart).bignumber.to.not.be.equal(oldArrayMemStart); + // The new location should be the end of the old array + freeMemOffset. + const expectedNewArrayMemStart = oldArrayMemStart + .plus((arr.length + 1) * 32) + .plus(freeMemOffset); + expect(result).to.deep.equal(expectedArray); + expect(newArrayMemStart).bignumber.to.be.equal(expectedNewArrayMemStart); }); }); From 3f9fd7c060953605d0a9d84de2728653fd2b70f7 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Wed, 20 Mar 2019 15:26:43 +0100 Subject: [PATCH 56/95] Updated CHANGELOGS --- contracts/asset-proxy/CHANGELOG.json | 3 +- contracts/asset-proxy/CHANGELOG.md | 7 + contracts/coordinator/CHANGELOG.json | 3 +- contracts/coordinator/CHANGELOG.md | 7 + contracts/erc1155/CHANGELOG.json | 9 + contracts/erc1155/CHANGELOG.md | 8 + contracts/erc20/CHANGELOG.json | 3 +- contracts/erc20/CHANGELOG.md | 4 + contracts/erc721/CHANGELOG.json | 3 +- contracts/erc721/CHANGELOG.md | 4 + contracts/exchange-forwarder/CHANGELOG.json | 3 +- contracts/exchange-forwarder/CHANGELOG.md | 4 + contracts/exchange-libs/CHANGELOG.json | 3 +- contracts/exchange-libs/CHANGELOG.md | 4 + contracts/exchange/CHANGELOG.json | 3 +- contracts/exchange/CHANGELOG.md | 6 + contracts/extensions/CHANGELOG.json | 3 +- contracts/extensions/CHANGELOG.md | 5 + contracts/multisig/CHANGELOG.json | 3 +- contracts/multisig/CHANGELOG.md | 4 + contracts/tec/generated-artifacts/TEC.json | 351 ++++++++++++++++++ .../tec/generated-artifacts/TestLibs.json | 149 ++++++++ .../tec/generated-artifacts/TestMixins.json | 284 ++++++++++++++ contracts/tec/generated-wrappers/tec.ts | 302 +++++++++++++++ contracts/tec/generated-wrappers/test_libs.ts | 148 ++++++++ .../tec/generated-wrappers/test_mixins.ts | 192 ++++++++++ contracts/test-utils/CHANGELOG.json | 3 +- contracts/test-utils/CHANGELOG.md | 9 + contracts/utils/CHANGELOG.json | 3 +- contracts/utils/CHANGELOG.md | 6 + packages/0x.js/CHANGELOG.json | 9 + packages/0x.js/CHANGELOG.md | 4 + packages/abi-gen-wrappers/CHANGELOG.json | 9 + packages/abi-gen-wrappers/CHANGELOG.md | 4 + packages/abi-gen/CHANGELOG.json | 9 + packages/abi-gen/CHANGELOG.md | 4 + packages/assert/CHANGELOG.json | 9 + packages/assert/CHANGELOG.md | 4 + packages/asset-buyer/CHANGELOG.json | 9 + packages/asset-buyer/CHANGELOG.md | 4 + packages/base-contract/CHANGELOG.json | 9 + packages/base-contract/CHANGELOG.md | 4 + packages/connect/CHANGELOG.json | 3 +- packages/connect/CHANGELOG.md | 4 + packages/contract-addresses/CHANGELOG.json | 3 +- packages/contract-addresses/CHANGELOG.md | 4 + packages/contract-wrappers/CHANGELOG.json | 9 + packages/contract-wrappers/CHANGELOG.md | 4 + packages/contracts-gen/CHANGELOG.json | 9 + packages/contracts-gen/CHANGELOG.md | 4 + packages/dev-utils/CHANGELOG.json | 9 + packages/dev-utils/CHANGELOG.md | 4 + packages/ethereum-types/CHANGELOG.json | 9 + packages/ethereum-types/CHANGELOG.md | 4 + packages/fill-scenarios/CHANGELOG.json | 9 + packages/fill-scenarios/CHANGELOG.md | 4 + packages/json-schemas/CHANGELOG.json | 9 + packages/json-schemas/CHANGELOG.md | 4 + packages/migrations/CHANGELOG.json | 9 + packages/migrations/CHANGELOG.md | 4 + packages/order-utils/CHANGELOG.json | 3 +- packages/order-utils/CHANGELOG.md | 5 + packages/order-watcher/CHANGELOG.json | 3 +- packages/order-watcher/CHANGELOG.md | 6 + packages/react-docs/CHANGELOG.json | 9 + packages/react-docs/CHANGELOG.md | 4 + packages/react-shared/CHANGELOG.json | 9 + packages/react-shared/CHANGELOG.md | 4 + packages/sol-compiler/CHANGELOG.json | 9 + packages/sol-compiler/CHANGELOG.md | 4 + packages/sol-coverage/CHANGELOG.json | 9 + packages/sol-coverage/CHANGELOG.md | 4 + packages/sol-doc/CHANGELOG.json | 9 + packages/sol-doc/CHANGELOG.md | 4 + packages/sol-profiler/CHANGELOG.json | 9 + packages/sol-profiler/CHANGELOG.md | 4 + packages/sol-resolver/CHANGELOG.json | 9 + packages/sol-resolver/CHANGELOG.md | 4 + packages/sol-trace/CHANGELOG.json | 9 + packages/sol-trace/CHANGELOG.md | 4 + packages/sol-tracing-utils/CHANGELOG.json | 3 +- packages/sol-tracing-utils/CHANGELOG.md | 4 + packages/sra-spec/CHANGELOG.json | 9 + packages/sra-spec/CHANGELOG.md | 4 + packages/subproviders/CHANGELOG.json | 3 +- packages/subproviders/CHANGELOG.md | 4 + packages/types/CHANGELOG.json | 3 +- packages/types/CHANGELOG.md | 7 + packages/typescript-typings/CHANGELOG.json | 3 +- packages/typescript-typings/CHANGELOG.md | 4 + packages/utils/CHANGELOG.json | 9 + packages/utils/CHANGELOG.md | 4 + packages/web3-wrapper/CHANGELOG.json | 3 +- packages/web3-wrapper/CHANGELOG.md | 4 + 94 files changed, 1884 insertions(+), 20 deletions(-) create mode 100644 contracts/tec/generated-artifacts/TEC.json create mode 100644 contracts/tec/generated-artifacts/TestLibs.json create mode 100644 contracts/tec/generated-artifacts/TestMixins.json create mode 100644 contracts/tec/generated-wrappers/tec.ts create mode 100644 contracts/tec/generated-wrappers/test_libs.ts create mode 100644 contracts/tec/generated-wrappers/test_mixins.ts diff --git a/contracts/asset-proxy/CHANGELOG.json b/contracts/asset-proxy/CHANGELOG.json index 4bdbc98084..04b23e91e7 100644 --- a/contracts/asset-proxy/CHANGELOG.json +++ b/contracts/asset-proxy/CHANGELOG.json @@ -18,7 +18,8 @@ "note": "Integration testing for ERC1155Proxy", "pr": 1673 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/contracts/asset-proxy/CHANGELOG.md b/contracts/asset-proxy/CHANGELOG.md index fcc8b2f61e..9b9521d230 100644 --- a/contracts/asset-proxy/CHANGELOG.md +++ b/contracts/asset-proxy/CHANGELOG.md @@ -5,6 +5,13 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.0 - _March 20, 2019_ + + * Do not reexport external dependencies (#1682) + * Add ERC1155Proxy (#1661) + * Bumped solidity version to ^0.5.5 (#1701) + * Integration testing for ERC1155Proxy (#1673) + ## v1.0.9 - _March 1, 2019_ * Dependencies updated diff --git a/contracts/coordinator/CHANGELOG.json b/contracts/coordinator/CHANGELOG.json index fc1a3f7f0d..9ad24493b7 100644 --- a/contracts/coordinator/CHANGELOG.json +++ b/contracts/coordinator/CHANGELOG.json @@ -17,6 +17,7 @@ "note": "Set `evmVersion` to `constantinople`", "pr": 1707 } - ] + ], + "timestamp": 1553091633 } ] diff --git a/contracts/coordinator/CHANGELOG.md b/contracts/coordinator/CHANGELOG.md index 1004e94271..2b55e9bd1b 100644 --- a/contracts/coordinator/CHANGELOG.md +++ b/contracts/coordinator/CHANGELOG.md @@ -4,3 +4,10 @@ Edit the package's CHANGELOG.json file only. --> CHANGELOG + +## v1.0.0 - _March 20, 2019_ + + * Created Coordinator package + * Use separate EIP712 domains for transactions and approvals (#1705) + * Add `SignatureType.Invalid` (#1705) + * Set `evmVersion` to `constantinople` (#1707) diff --git a/contracts/erc1155/CHANGELOG.json b/contracts/erc1155/CHANGELOG.json index 6eaa0ae9fd..1abe96bd7e 100644 --- a/contracts/erc1155/CHANGELOG.json +++ b/contracts/erc1155/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "1.0.1", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "1.0.0", "changes": [ diff --git a/contracts/erc1155/CHANGELOG.md b/contracts/erc1155/CHANGELOG.md index 1004e94271..fb4659016a 100644 --- a/contracts/erc1155/CHANGELOG.md +++ b/contracts/erc1155/CHANGELOG.md @@ -4,3 +4,11 @@ Edit the package's CHANGELOG.json file only. --> CHANGELOG + +## v1.0.1 - _March 20, 2019_ + + * Dependencies updated + +## v1.0.0 - _Invalid date_ + + * Created ERC1155 contracts package (#1657) diff --git a/contracts/erc20/CHANGELOG.json b/contracts/erc20/CHANGELOG.json index 87a442ea37..b6c7b7d778 100644 --- a/contracts/erc20/CHANGELOG.json +++ b/contracts/erc20/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/contracts/erc20/CHANGELOG.md b/contracts/erc20/CHANGELOG.md index 59748641f0..3b4e1f5c69 100644 --- a/contracts/erc20/CHANGELOG.md +++ b/contracts/erc20/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.0 - _March 20, 2019_ + + * Upgrade contracts to Solidity 0.5.5 (#1682) + ## v1.0.9 - _March 1, 2019_ * Dependencies updated diff --git a/contracts/erc721/CHANGELOG.json b/contracts/erc721/CHANGELOG.json index 91d3674e16..89ce021447 100644 --- a/contracts/erc721/CHANGELOG.json +++ b/contracts/erc721/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/contracts/erc721/CHANGELOG.md b/contracts/erc721/CHANGELOG.md index 1c586ff337..2cff0f0f14 100644 --- a/contracts/erc721/CHANGELOG.md +++ b/contracts/erc721/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.0 - _March 20, 2019_ + + * Upgrade contracts to Solidity 0.5.5 (#1682) + ## v1.0.9 - _March 1, 2019_ * Dependencies updated diff --git a/contracts/exchange-forwarder/CHANGELOG.json b/contracts/exchange-forwarder/CHANGELOG.json index 1bebb14105..2a3ca9a5b2 100644 --- a/contracts/exchange-forwarder/CHANGELOG.json +++ b/contracts/exchange-forwarder/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Do not reexport external dependencies", "pr": 1682 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/contracts/exchange-forwarder/CHANGELOG.md b/contracts/exchange-forwarder/CHANGELOG.md index 61afba9d11..83bc43eac7 100644 --- a/contracts/exchange-forwarder/CHANGELOG.md +++ b/contracts/exchange-forwarder/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.0 - _March 20, 2019_ + + * Do not reexport external dependencies (#1682) + ## v1.0.9 - _March 1, 2019_ * Dependencies updated diff --git a/contracts/exchange-libs/CHANGELOG.json b/contracts/exchange-libs/CHANGELOG.json index 19f4222093..17a316cd0a 100644 --- a/contracts/exchange-libs/CHANGELOG.json +++ b/contracts/exchange-libs/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/contracts/exchange-libs/CHANGELOG.md b/contracts/exchange-libs/CHANGELOG.md index 64aa74d546..ac861fa478 100644 --- a/contracts/exchange-libs/CHANGELOG.md +++ b/contracts/exchange-libs/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.0 - _March 20, 2019_ + + * Upgrade contracts to Solidity 0.5.5 (#1682) + ## v1.1.3 - _March 1, 2019_ * Dependencies updated diff --git a/contracts/exchange/CHANGELOG.json b/contracts/exchange/CHANGELOG.json index 6f9c055614..6febfdcf3a 100644 --- a/contracts/exchange/CHANGELOG.json +++ b/contracts/exchange/CHANGELOG.json @@ -14,7 +14,8 @@ "note": "Integration testing for ERC1155Proxy", "pr": 1673 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/contracts/exchange/CHANGELOG.md b/contracts/exchange/CHANGELOG.md index 725c237289..14889ee569 100644 --- a/contracts/exchange/CHANGELOG.md +++ b/contracts/exchange/CHANGELOG.md @@ -5,6 +5,12 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.0 - _March 20, 2019_ + + * Do not reexport external dependencies (#1682) + * Upgrade contracts to Solidity 0.5.5 (#1682) + * Integration testing for ERC1155Proxy (#1673) + ## v1.0.9 - _March 1, 2019_ * Dependencies updated diff --git a/contracts/extensions/CHANGELOG.json b/contracts/extensions/CHANGELOG.json index 337addf6af..a2d3074c38 100644 --- a/contracts/extensions/CHANGELOG.json +++ b/contracts/extensions/CHANGELOG.json @@ -10,7 +10,8 @@ "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/contracts/extensions/CHANGELOG.md b/contracts/extensions/CHANGELOG.md index a9eb1577b5..b3b4ab8e17 100644 --- a/contracts/extensions/CHANGELOG.md +++ b/contracts/extensions/CHANGELOG.md @@ -5,6 +5,11 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.0.0 - _March 20, 2019_ + + * Do not reexport external dependencies (#1682) + * Upgrade contracts to Solidity 0.5.5 (#1682) + ## v2.0.8 - _March 1, 2019_ * Dependencies updated diff --git a/contracts/multisig/CHANGELOG.json b/contracts/multisig/CHANGELOG.json index 9c224349a3..21c0764323 100644 --- a/contracts/multisig/CHANGELOG.json +++ b/contracts/multisig/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Do not reexport external dependencies", "pr": 1682 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/contracts/multisig/CHANGELOG.md b/contracts/multisig/CHANGELOG.md index e362447478..6fd0de5bd6 100644 --- a/contracts/multisig/CHANGELOG.md +++ b/contracts/multisig/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.0.0 - _March 20, 2019_ + + * Do not reexport external dependencies (#1682) + ## v2.0.8 - _March 1, 2019_ * Dependencies updated diff --git a/contracts/tec/generated-artifacts/TEC.json b/contracts/tec/generated-artifacts/TEC.json new file mode 100644 index 0000000000..a1440f769c --- /dev/null +++ b/contracts/tec/generated-artifacts/TEC.json @@ -0,0 +1,351 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "TEC", + "compilerOutput": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "bytes32" + }, + { + "name": "signature", + "type": "bytes" + } + ], + "name": "getSignerAddress", + "outputs": [ + { + "name": "signerAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "components": [ + { + "name": "makerAddress", + "type": "address" + }, + { + "name": "takerAddress", + "type": "address" + }, + { + "name": "feeRecipientAddress", + "type": "address" + }, + { + "name": "senderAddress", + "type": "address" + }, + { + "name": "makerAssetAmount", + "type": "uint256" + }, + { + "name": "takerAssetAmount", + "type": "uint256" + }, + { + "name": "makerFee", + "type": "uint256" + }, + { + "name": "takerFee", + "type": "uint256" + }, + { + "name": "expirationTimeSeconds", + "type": "uint256" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "makerAssetData", + "type": "bytes" + }, + { + "name": "takerAssetData", + "type": "bytes" + } + ], + "name": "orders", + "type": "tuple[]" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTransactionOrdersApproval", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTECApprovals", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EIP712_DOMAIN_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "executeTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_exchange", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x60806040523480156200001157600080fd5b50604051602080620026558339810180604052620000339190810190620001f8565b604080517f454950373132446f6d61696e28000000000000000000000000000000000000006020808301919091527f737472696e67206e616d652c0000000000000000000000000000000000000000602d8301527f737472696e672076657273696f6e2c000000000000000000000000000000000060398301527f6164647265737320766572696679696e67436f6e74726163740000000000000060488301527f2900000000000000000000000000000000000000000000000000000000000000606183015282516042818403018152606283018085528151919092012060c2830190935260278082528493926200262e90608201398051602091820120604080518082018252600581527f312e302e3000000000000000000000000000000000000000000000000000000090840152805180840194909452838101919091527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060840152306080808501919091528151808503909101815260a09093019052815191012060005560018054600160a060020a031916600160a060020a03929092169190911790555062000240565b6000620001f182516200022d565b9392505050565b6000602082840312156200020b57600080fd5b6000620002198484620001e3565b949350505050565b600160a060020a031690565b60006200023a8262000221565b92915050565b6123de80620002506000396000f3fe608060405234801561001057600080fd5b5060043610610084576000357c0100000000000000000000000000000000000000000000000000000000900480636c42c8281161006d5780636c42c828146100c7578063e306f779146100da578063f50bb641146100ef57610084565b80630f7d8e391461008957806355fc233c146100b2575b600080fd5b61009c610097366004611b6a565b610102565b6040516100a9919061212b565b60405180910390f35b6100c56100c0366004611c50565b6104f7565b005b6100c56100d5366004611d3c565b610761565b6100e2610790565b6040516100a99190612139565b6100c56100fd366004611d3c565b610796565b6000808251111515610149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121e7565b60405180910390fd5b600061015483610840565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121d7565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff61090416565b905060006102c687602163ffffffff61090416565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff61090416565b9050600061041287602163ffffffff61090416565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b92915050565b60006105028661094f565b60408051600080825260208201909252845192935091905b818110156105ee576000868281518110151561053257fe5b9060200190602002015190506105466114fb565b5060408051606081018252868152602081018a905290810182905242821161059a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612197565b60006105a582610962565b905060006105ca828a878151811015156105bb57fe5b90602001906020020151610102565b90506105dc878263ffffffff61097016565b9650506001909301925061051a915050565b50865160005b818110156107555788516000908a908390811061060d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561063c5761074d565b6000898281518110151561064c57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106925761068a853263ffffffff61097016565b94505061074d565b60006106a4868363ffffffff610a3a16565b90508015156106df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612157565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806107125750610712863263ffffffff610a3a16565b151561074a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121f7565b50505b6001016105f4565b50505050505050505050565b60606107708560400151610ab2565b90506000815111156107895761078985828686866104f7565b5050505050565b60005481565b6107a284848484610761565b6001548451602086015160408088015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361080893909290918990600401612217565b600060405180830381600087803b15801561082257600080fd5b505af1158015610836573d6000803e3d6000fd5b5050505050505050565b600080825111151561087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121c7565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108ae57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610946576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121a7565b50016020015190565b60006104f161095d83610f6a565b611126565b60006104f161095d83611166565b8151604051606091849060208082028084018201929101828510156109c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612187565b828511156109db576109d48585836112f8565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610a0857fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b81811015610aa7578373ffffffffffffffffffffffffffffffffffffffff168582815181101515610a6e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415610a9f576001925050506104f1565b600101610a41565b506000949350505050565b60606000610ac6838263ffffffff6113bc16565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610b5957507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610ba557507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610c2f57610bb2611520565b8351610bc890859060049063ffffffff61142916565b806020019051610bdb9190810190611bbc565b604080516001808252818301909252919250816020015b610bfa611520565b815260200190600190039081610bf257905050925080836000815181101515610c1f57fe5b6020908102909101015250610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610cc057507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610d0c57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610d5857507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610da457507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610df057507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610e3c57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610e71578251610e5790849060049063ffffffff61142916565b806020019051610e6a9190810190611b2d565b9150610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610f6457610ec3611520565b610ecb611520565b8451610ee190869060049063ffffffff61142916565b806020019051610ef49190810190611bf1565b60408051600280825260608201909252929450909250816020015b610f17611520565b815260200190600190039081610f0f57905050935081846000815181101515610f3c57fe5b602090810290910101528351819085906001908110610f5757fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b6020831061109e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611061565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256123808239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b6020831061128657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611249565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611322576001816020036101000a0380198351168185511680821786525050506113b7565b8282141561132f576113b7565b828211156113695760208103905080820181840181515b82851015611361578451865260209586019590940193611346565b9052506113b7565b60208103905080820181840183515b818612156113b257825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283019290910190611378565b855250505b505050565b6000816004018351101515156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612207565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612167565b83518211156114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612177565b8282036040519080825280601f01601f1916602001820160405280156114cd576020820181803883390190505b5090506114ee6114dc826114f5565b846114e6876114f5565b0183516112f8565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114ee82356122f4565b60006114ee82516122f4565b6000601f8201831361160357600080fd5b813561161661161182612289565b612262565b81815260209384019390925082018360005b83811015611654578135860161163e8882611794565b8452506020928301929190910190600101611628565b5050505092915050565b6000601f8201831361166f57600080fd5b815161167d61161182612289565b81815260209384019390925082018360005b8381101561165457815186016116a58882611972565b845250602092830192919091019060010161168f565b6000601f820183136116cc57600080fd5b81356116da61161182612289565b81815260209384019390925082018360005b8381101561165457813586016117028882611829565b84525060209283019291909101906001016116ec565b6000601f8201831361172957600080fd5b813561173761161182612289565b9150818183526020840193506020810190508385602084028201111561175c57600080fd5b60005b8381101561165457816117728882611788565b845250602092830192919091019060010161175f565b60006114ee82356122ff565b6000601f820183136117a557600080fd5b81356117b3611611826122aa565b915080825260208301602083018583830111156117cf57600080fd5b6117da83828461231b565b50505092915050565b6000601f820183136117f457600080fd5b8151611802611611826122aa565b9150808252602083016020830185838301111561181e57600080fd5b6117da838284612327565b6000610180828403121561183c57600080fd5b611847610180612262565b9050600061185584846115da565b8252506020611866848483016115da565b602083015250604061187a848285016115da565b604083015250606061188e848285016115da565b60608301525060806118a284828501611788565b60808301525060a06118b684828501611788565b60a08301525060c06118ca84828501611788565b60c08301525060e06118de84828501611788565b60e0830152506101006118f384828501611788565b6101008301525061012061190984828501611788565b6101208301525061014082013567ffffffffffffffff81111561192b57600080fd5b61193784828501611794565b6101408301525061016082013567ffffffffffffffff81111561195957600080fd5b61196584828501611794565b6101608301525092915050565b6000610180828403121561198557600080fd5b611990610180612262565b9050600061199e84846115e6565b82525060206119af848483016115e6565b60208301525060406119c3848285016115e6565b60408301525060606119d7848285016115e6565b60608301525060806119eb84828501611b21565b60808301525060a06119ff84828501611b21565b60a08301525060c0611a1384828501611b21565b60c08301525060e0611a2784828501611b21565b60e083015250610100611a3c84828501611b21565b61010083015250610120611a5284828501611b21565b6101208301525061014082015167ffffffffffffffff811115611a7457600080fd5b611a80848285016117e3565b6101408301525061016082015167ffffffffffffffff811115611aa257600080fd5b611965848285016117e3565b600060608284031215611ac057600080fd5b611aca6060612262565b90506000611ad88484611788565b8252506020611ae9848483016115da565b602083015250604082013567ffffffffffffffff811115611b0957600080fd5b611b1584828501611794565b60408301525092915050565b60006114ee82516122ff565b600060208284031215611b3f57600080fd5b815167ffffffffffffffff811115611b5657600080fd5b611b628482850161165e565b949350505050565b60008060408385031215611b7d57600080fd5b6000611b898585611788565b925050602083013567ffffffffffffffff811115611ba657600080fd5b611bb285828601611794565b9150509250929050565b600060208284031215611bce57600080fd5b815167ffffffffffffffff811115611be557600080fd5b611b6284828501611972565b60008060408385031215611c0457600080fd5b825167ffffffffffffffff811115611c1b57600080fd5b611c2785828601611972565b925050602083015167ffffffffffffffff811115611c4457600080fd5b611bb285828601611972565b600080600080600060a08688031215611c6857600080fd5b853567ffffffffffffffff811115611c7f57600080fd5b611c8b88828901611aae565b955050602086013567ffffffffffffffff811115611ca857600080fd5b611cb4888289016116bb565b945050604086013567ffffffffffffffff811115611cd157600080fd5b611cdd88828901611794565b935050606086013567ffffffffffffffff811115611cfa57600080fd5b611d0688828901611718565b925050608086013567ffffffffffffffff811115611d2357600080fd5b611d2f888289016115f2565b9150509295509295909350565b60008060008060808587031215611d5257600080fd5b843567ffffffffffffffff811115611d6957600080fd5b611d7587828801611aae565b945050602085013567ffffffffffffffff811115611d9257600080fd5b611d9e87828801611794565b935050604085013567ffffffffffffffff811115611dbb57600080fd5b611dc787828801611718565b925050606085013567ffffffffffffffff811115611de457600080fd5b611df0878288016115f2565b91505092959194509250565b611e05816122f4565b82525050565b611e05816122ff565b6000611e1f826122f0565b808452611e33816020860160208601612327565b611e3c81612357565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611dfc565b602081016104f18284611e0b565b602080825281016104f181611e49565b602080825281016104f181611e79565b602080825281016104f181611ea9565b602080825281016104f181611ed9565b602080825281016104f181611f09565b602080825281016104f181611f39565b602080825281016104f181611f69565b602080825281016104f181611fbf565b602080825281016104f181611fef565b602080825281016104f181612045565b602080825281016104f181612075565b602080825281016104f1816120a5565b602080825281016104f1816120d5565b608081016122258287611e0b565b6122326020830186611dfc565b81810360408301526122448185611e14565b905081810360608301526122588184611e14565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561228157600080fd5b604052919050565b600067ffffffffffffffff8211156122a057600080fd5b5060209081020190565b600067ffffffffffffffff8211156122c157600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612302565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561234257818101518382015260200161232a565b83811115612351576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a723058207d14ce46d6a1f41fea9ab5b5291d1e35347eb8bb6b321fac4db6b2187d7a44836c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x2655 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x33 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x1F8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0x2D DUP4 ADD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0x39 DUP4 ADD MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0x48 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x61 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x42 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x62 DUP4 ADD DUP1 DUP6 MSTORE DUP2 MLOAD SWAP2 SWAP1 SWAP3 ADD KECCAK256 PUSH1 0xC2 DUP4 ADD SWAP1 SWAP4 MSTORE PUSH1 0x27 DUP1 DUP3 MSTORE DUP5 SWAP4 SWAP3 PUSH3 0x262E SWAP1 PUSH1 0x82 ADD CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE DUP1 MLOAD DUP1 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP4 ADD SWAP1 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x240 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1F1 DUP3 MLOAD PUSH3 0x22D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x219 DUP5 DUP5 PUSH3 0x1E3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x23A DUP3 PUSH3 0x221 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x23DE DUP1 PUSH3 0x250 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x6C42C828 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xF50BB641 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6A JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x212B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C50 JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x2139 JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x796 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x840 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x502 DUP7 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x532 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x546 PUSH2 0x14FB JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A5 DUP3 PUSH2 0x962 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5CA DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x5BB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x5DC DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x51A SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x755 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x60D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x63C JUMPI PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x64C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x692 JUMPI PUSH2 0x68A DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A4 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x712 JUMPI POP PUSH2 0x712 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21F7 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5F4 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x770 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x789 JUMPI PUSH2 0x789 DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4F7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x7A2 DUP5 DUP5 DUP5 DUP5 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP5 MLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 DUP1 DUP9 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x808 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2217 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x87E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21C7 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x8AE JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0xF6A JUMP JUMPDEST PUSH2 0x1126 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0x1166 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x9C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2187 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x9DB JUMPI PUSH2 0x9D4 DUP6 DUP6 DUP4 PUSH2 0x12F8 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA08 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAA7 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA6E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA9F JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xA41 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xAC6 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x13BC AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB59 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBA5 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xC2F JUMPI PUSH2 0xBB2 PUSH2 0x1520 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xBC8 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xBDB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xBFA PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBF2 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC1F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xCC0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD0C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD58 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDA4 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDF0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xE3C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xE71 JUMPI DUP3 MLOAD PUSH2 0xE57 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE6A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B2D JUMP JUMPDEST SWAP2 POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xF64 JUMPI PUSH2 0xEC3 PUSH2 0x1520 JUMP JUMPDEST PUSH2 0xECB PUSH2 0x1520 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xEE1 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xEF4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xF17 PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xF0F JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xF57 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x109E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1061 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x2380 DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1286 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1249 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1322 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x132F JUMPI PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1369 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1361 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x1346 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x13B2 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1378 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2207 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x1465 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2167 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2177 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x14EE PUSH2 0x14DC DUP3 PUSH2 0x14F5 JUMP JUMPDEST DUP5 PUSH2 0x14E6 DUP8 PUSH2 0x14F5 JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x12F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1603 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1616 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0x2262 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x163E DUP9 DUP3 PUSH2 0x1794 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1628 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x166F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x167D PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x16A5 DUP9 DUP3 PUSH2 0x1972 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x168F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1702 DUP9 DUP3 PUSH2 0x1829 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x16EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1737 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x175C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 PUSH2 0x1772 DUP9 DUP3 PUSH2 0x1788 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17B3 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x231B JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1802 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x181E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x2327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x183C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1847 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1855 DUP5 DUP5 PUSH2 0x15DA JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1866 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x187A DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x188E DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x18A2 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x18B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x18CA DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x18DE DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x18F3 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1909 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1937 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1985 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1990 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199E DUP5 DUP5 PUSH2 0x15E6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x19AF DUP5 DUP5 DUP4 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x19C3 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x19D7 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x19EB DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x19FF DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1A13 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1A27 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1A52 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A80 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1ACA PUSH1 0x60 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AD8 DUP5 DUP5 PUSH2 0x1788 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1AE9 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B15 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x165E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B89 DUP6 DUP6 PUSH2 0x1788 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C8B DUP9 DUP3 DUP10 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CB4 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CDD DUP9 DUP3 DUP10 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP9 DUP3 DUP10 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D2F DUP9 DUP3 DUP10 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1D52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D75 DUP8 DUP3 DUP9 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D9E DUP8 DUP3 DUP9 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC7 DUP8 DUP3 DUP9 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DF0 DUP8 DUP3 DUP9 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22F4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E1F DUP3 PUSH2 0x22F0 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E33 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2327 JUMP JUMPDEST PUSH2 0x1E3C DUP2 PUSH2 0x2357 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1E0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E79 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1EA9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F39 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F69 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FEF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2045 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2075 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20A5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2225 DUP3 DUP8 PUSH2 0x1E0B JUMP JUMPDEST PUSH2 0x2232 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1DFC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2244 DUP2 DUP6 PUSH2 0x1E14 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2258 DUP2 DUP5 PUSH2 0x1E14 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2302 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2342 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x232A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A723058207D14CE46 0xd6 LOG1 DELEGATECALL 0x1f 0xea SWAP11 0xb5 0xb5 0x29 SAR 0x1e CALLDATALOAD CALLVALUE PUSH31 0xB8BB6B321FAC4DB6B2187D7A44836C6578706572696D656E74616CF5003730 PUSH25 0x2050726F746F636F6C20547261646520457865637574696F6E KECCAK256 NUMBER PUSH16 0x6F7264696E61746F7200000000000000 ", + "sourceMap": "821:203:3:-;;;937:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;937:85:3;;;;;;;;;;;;;;;;;;;;;;1083:148:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;1083:148:9;;;;;;1073:159;;;;;;;1549:18;;;;;;;;;;1005:9:3;;1073:159:9;1549:18;;;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;;;;;;;;;;;;;1583:39;1454:214;;;;1652:4;1454:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1454:214:9;;;;;;1444:225;;;;;-1:-1:-1;1423:246:9;830:8:8;:35;;-1:-1:-1;;;;;;830:35:8;-1:-1:-1;;;;;830:35:8;;;;;;;;;;-1:-1:-1;821:203:3;;5:122:-1;;83:39;114:6;108:13;83:39;;;74:48;68:59;-1:-1;;;68:59;134:263;;249:2;237:9;228:7;224:23;220:32;217:2;;;265:1;262;255:12;217:2;300:1;317:64;373:7;353:9;317:64;;;307:74;211:186;-1:-1;;;;211:186;404:128;-1:-1;;;;;473:54;;456:76;539:105;;608:31;633:5;608:31;;;597:42;591:53;-1:-1;;591:53;;821:203:3;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610084576000357c0100000000000000000000000000000000000000000000000000000000900480636c42c8281161006d5780636c42c828146100c7578063e306f779146100da578063f50bb641146100ef57610084565b80630f7d8e391461008957806355fc233c146100b2575b600080fd5b61009c610097366004611b6a565b610102565b6040516100a9919061212b565b60405180910390f35b6100c56100c0366004611c50565b6104f7565b005b6100c56100d5366004611d3c565b610761565b6100e2610790565b6040516100a99190612139565b6100c56100fd366004611d3c565b610796565b6000808251111515610149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121e7565b60405180910390fd5b600061015483610840565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121d7565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff61090416565b905060006102c687602163ffffffff61090416565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff61090416565b9050600061041287602163ffffffff61090416565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b92915050565b60006105028661094f565b60408051600080825260208201909252845192935091905b818110156105ee576000868281518110151561053257fe5b9060200190602002015190506105466114fb565b5060408051606081018252868152602081018a905290810182905242821161059a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612197565b60006105a582610962565b905060006105ca828a878151811015156105bb57fe5b90602001906020020151610102565b90506105dc878263ffffffff61097016565b9650506001909301925061051a915050565b50865160005b818110156107555788516000908a908390811061060d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561063c5761074d565b6000898281518110151561064c57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106925761068a853263ffffffff61097016565b94505061074d565b60006106a4868363ffffffff610a3a16565b90508015156106df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612157565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806107125750610712863263ffffffff610a3a16565b151561074a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121f7565b50505b6001016105f4565b50505050505050505050565b60606107708560400151610ab2565b90506000815111156107895761078985828686866104f7565b5050505050565b60005481565b6107a284848484610761565b6001548451602086015160408088015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361080893909290918990600401612217565b600060405180830381600087803b15801561082257600080fd5b505af1158015610836573d6000803e3d6000fd5b5050505050505050565b600080825111151561087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121c7565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108ae57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610946576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121a7565b50016020015190565b60006104f161095d83610f6a565b611126565b60006104f161095d83611166565b8151604051606091849060208082028084018201929101828510156109c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612187565b828511156109db576109d48585836112f8565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610a0857fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b81811015610aa7578373ffffffffffffffffffffffffffffffffffffffff168582815181101515610a6e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415610a9f576001925050506104f1565b600101610a41565b506000949350505050565b60606000610ac6838263ffffffff6113bc16565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610b5957507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610ba557507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610c2f57610bb2611520565b8351610bc890859060049063ffffffff61142916565b806020019051610bdb9190810190611bbc565b604080516001808252818301909252919250816020015b610bfa611520565b815260200190600190039081610bf257905050925080836000815181101515610c1f57fe5b6020908102909101015250610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610cc057507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610d0c57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610d5857507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610da457507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610df057507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610e3c57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610e71578251610e5790849060049063ffffffff61142916565b806020019051610e6a9190810190611b2d565b9150610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610f6457610ec3611520565b610ecb611520565b8451610ee190869060049063ffffffff61142916565b806020019051610ef49190810190611bf1565b60408051600280825260608201909252929450909250816020015b610f17611520565b815260200190600190039081610f0f57905050935081846000815181101515610f3c57fe5b602090810290910101528351819085906001908110610f5757fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b6020831061109e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611061565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256123808239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b6020831061128657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611249565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611322576001816020036101000a0380198351168185511680821786525050506113b7565b8282141561132f576113b7565b828211156113695760208103905080820181840181515b82851015611361578451865260209586019590940193611346565b9052506113b7565b60208103905080820181840183515b818612156113b257825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283019290910190611378565b855250505b505050565b6000816004018351101515156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612207565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612167565b83518211156114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612177565b8282036040519080825280601f01601f1916602001820160405280156114cd576020820181803883390190505b5090506114ee6114dc826114f5565b846114e6876114f5565b0183516112f8565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114ee82356122f4565b60006114ee82516122f4565b6000601f8201831361160357600080fd5b813561161661161182612289565b612262565b81815260209384019390925082018360005b83811015611654578135860161163e8882611794565b8452506020928301929190910190600101611628565b5050505092915050565b6000601f8201831361166f57600080fd5b815161167d61161182612289565b81815260209384019390925082018360005b8381101561165457815186016116a58882611972565b845250602092830192919091019060010161168f565b6000601f820183136116cc57600080fd5b81356116da61161182612289565b81815260209384019390925082018360005b8381101561165457813586016117028882611829565b84525060209283019291909101906001016116ec565b6000601f8201831361172957600080fd5b813561173761161182612289565b9150818183526020840193506020810190508385602084028201111561175c57600080fd5b60005b8381101561165457816117728882611788565b845250602092830192919091019060010161175f565b60006114ee82356122ff565b6000601f820183136117a557600080fd5b81356117b3611611826122aa565b915080825260208301602083018583830111156117cf57600080fd5b6117da83828461231b565b50505092915050565b6000601f820183136117f457600080fd5b8151611802611611826122aa565b9150808252602083016020830185838301111561181e57600080fd5b6117da838284612327565b6000610180828403121561183c57600080fd5b611847610180612262565b9050600061185584846115da565b8252506020611866848483016115da565b602083015250604061187a848285016115da565b604083015250606061188e848285016115da565b60608301525060806118a284828501611788565b60808301525060a06118b684828501611788565b60a08301525060c06118ca84828501611788565b60c08301525060e06118de84828501611788565b60e0830152506101006118f384828501611788565b6101008301525061012061190984828501611788565b6101208301525061014082013567ffffffffffffffff81111561192b57600080fd5b61193784828501611794565b6101408301525061016082013567ffffffffffffffff81111561195957600080fd5b61196584828501611794565b6101608301525092915050565b6000610180828403121561198557600080fd5b611990610180612262565b9050600061199e84846115e6565b82525060206119af848483016115e6565b60208301525060406119c3848285016115e6565b60408301525060606119d7848285016115e6565b60608301525060806119eb84828501611b21565b60808301525060a06119ff84828501611b21565b60a08301525060c0611a1384828501611b21565b60c08301525060e0611a2784828501611b21565b60e083015250610100611a3c84828501611b21565b61010083015250610120611a5284828501611b21565b6101208301525061014082015167ffffffffffffffff811115611a7457600080fd5b611a80848285016117e3565b6101408301525061016082015167ffffffffffffffff811115611aa257600080fd5b611965848285016117e3565b600060608284031215611ac057600080fd5b611aca6060612262565b90506000611ad88484611788565b8252506020611ae9848483016115da565b602083015250604082013567ffffffffffffffff811115611b0957600080fd5b611b1584828501611794565b60408301525092915050565b60006114ee82516122ff565b600060208284031215611b3f57600080fd5b815167ffffffffffffffff811115611b5657600080fd5b611b628482850161165e565b949350505050565b60008060408385031215611b7d57600080fd5b6000611b898585611788565b925050602083013567ffffffffffffffff811115611ba657600080fd5b611bb285828601611794565b9150509250929050565b600060208284031215611bce57600080fd5b815167ffffffffffffffff811115611be557600080fd5b611b6284828501611972565b60008060408385031215611c0457600080fd5b825167ffffffffffffffff811115611c1b57600080fd5b611c2785828601611972565b925050602083015167ffffffffffffffff811115611c4457600080fd5b611bb285828601611972565b600080600080600060a08688031215611c6857600080fd5b853567ffffffffffffffff811115611c7f57600080fd5b611c8b88828901611aae565b955050602086013567ffffffffffffffff811115611ca857600080fd5b611cb4888289016116bb565b945050604086013567ffffffffffffffff811115611cd157600080fd5b611cdd88828901611794565b935050606086013567ffffffffffffffff811115611cfa57600080fd5b611d0688828901611718565b925050608086013567ffffffffffffffff811115611d2357600080fd5b611d2f888289016115f2565b9150509295509295909350565b60008060008060808587031215611d5257600080fd5b843567ffffffffffffffff811115611d6957600080fd5b611d7587828801611aae565b945050602085013567ffffffffffffffff811115611d9257600080fd5b611d9e87828801611794565b935050604085013567ffffffffffffffff811115611dbb57600080fd5b611dc787828801611718565b925050606085013567ffffffffffffffff811115611de457600080fd5b611df0878288016115f2565b91505092959194509250565b611e05816122f4565b82525050565b611e05816122ff565b6000611e1f826122f0565b808452611e33816020860160208601612327565b611e3c81612357565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611dfc565b602081016104f18284611e0b565b602080825281016104f181611e49565b602080825281016104f181611e79565b602080825281016104f181611ea9565b602080825281016104f181611ed9565b602080825281016104f181611f09565b602080825281016104f181611f39565b602080825281016104f181611f69565b602080825281016104f181611fbf565b602080825281016104f181611fef565b602080825281016104f181612045565b602080825281016104f181612075565b602080825281016104f1816120a5565b602080825281016104f1816120d5565b608081016122258287611e0b565b6122326020830186611dfc565b81810360408301526122448185611e14565b905081810360608301526122588184611e14565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561228157600080fd5b604052919050565b600067ffffffffffffffff8211156122a057600080fd5b5060209081020190565b600067ffffffffffffffff8211156122c157600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612302565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561234257818101518382015260200161232a565b83811115612351576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a723058207d14ce46d6a1f41fea9ab5b5291d1e35347eb8bb6b321fac4db6b2187d7a44836c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x6C42C828 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xF50BB641 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6A JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x212B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C50 JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x2139 JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x796 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x840 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x502 DUP7 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x532 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x546 PUSH2 0x14FB JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A5 DUP3 PUSH2 0x962 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5CA DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x5BB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x5DC DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x51A SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x755 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x60D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x63C JUMPI PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x64C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x692 JUMPI PUSH2 0x68A DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A4 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x712 JUMPI POP PUSH2 0x712 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21F7 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5F4 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x770 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x789 JUMPI PUSH2 0x789 DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4F7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x7A2 DUP5 DUP5 DUP5 DUP5 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP5 MLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 DUP1 DUP9 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x808 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2217 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x87E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21C7 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x8AE JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0xF6A JUMP JUMPDEST PUSH2 0x1126 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0x1166 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x9C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2187 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x9DB JUMPI PUSH2 0x9D4 DUP6 DUP6 DUP4 PUSH2 0x12F8 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA08 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAA7 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA6E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA9F JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xA41 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xAC6 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x13BC AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB59 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBA5 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xC2F JUMPI PUSH2 0xBB2 PUSH2 0x1520 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xBC8 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xBDB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xBFA PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBF2 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC1F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xCC0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD0C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD58 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDA4 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDF0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xE3C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xE71 JUMPI DUP3 MLOAD PUSH2 0xE57 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE6A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B2D JUMP JUMPDEST SWAP2 POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xF64 JUMPI PUSH2 0xEC3 PUSH2 0x1520 JUMP JUMPDEST PUSH2 0xECB PUSH2 0x1520 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xEE1 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xEF4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xF17 PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xF0F JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xF57 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x109E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1061 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x2380 DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1286 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1249 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1322 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x132F JUMPI PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1369 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1361 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x1346 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x13B2 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1378 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2207 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x1465 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2167 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2177 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x14EE PUSH2 0x14DC DUP3 PUSH2 0x14F5 JUMP JUMPDEST DUP5 PUSH2 0x14E6 DUP8 PUSH2 0x14F5 JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x12F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1603 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1616 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0x2262 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x163E DUP9 DUP3 PUSH2 0x1794 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1628 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x166F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x167D PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x16A5 DUP9 DUP3 PUSH2 0x1972 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x168F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1702 DUP9 DUP3 PUSH2 0x1829 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x16EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1737 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x175C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 PUSH2 0x1772 DUP9 DUP3 PUSH2 0x1788 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17B3 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x231B JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1802 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x181E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x2327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x183C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1847 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1855 DUP5 DUP5 PUSH2 0x15DA JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1866 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x187A DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x188E DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x18A2 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x18B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x18CA DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x18DE DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x18F3 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1909 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1937 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1985 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1990 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199E DUP5 DUP5 PUSH2 0x15E6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x19AF DUP5 DUP5 DUP4 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x19C3 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x19D7 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x19EB DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x19FF DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1A13 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1A27 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1A52 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A80 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1ACA PUSH1 0x60 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AD8 DUP5 DUP5 PUSH2 0x1788 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1AE9 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B15 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x165E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B89 DUP6 DUP6 PUSH2 0x1788 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C8B DUP9 DUP3 DUP10 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CB4 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CDD DUP9 DUP3 DUP10 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP9 DUP3 DUP10 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D2F DUP9 DUP3 DUP10 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1D52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D75 DUP8 DUP3 DUP9 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D9E DUP8 DUP3 DUP9 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC7 DUP8 DUP3 DUP9 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DF0 DUP8 DUP3 DUP9 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22F4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E1F DUP3 PUSH2 0x22F0 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E33 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2327 JUMP JUMPDEST PUSH2 0x1E3C DUP2 PUSH2 0x2357 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1E0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E79 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1EA9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F39 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F69 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FEF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2045 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2075 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20A5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2225 DUP3 DUP8 PUSH2 0x1E0B JUMP JUMPDEST PUSH2 0x2232 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1DFC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2244 DUP2 DUP6 PUSH2 0x1E14 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2258 DUP2 DUP5 PUSH2 0x1E14 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2302 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2342 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x232A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A723058207D14CE46 0xd6 LOG1 DELEGATECALL 0x1f 0xea SWAP11 0xb5 0xb5 0x29 SAR 0x1e CALLDATALOAD CALLVALUE PUSH31 0xB8BB6B321FAC4DB6B2187D7A44836C6578706572696D656E74616CF5003700 ", + "sourceMap": "821:203:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;821:203:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3439:2912:1;;;;;;;;;:::i;:::-;;1981:853;;;;;;;;;:::i;1339:33:9:-;;;:::i;:::-;;;;;;;;1500:745:2;;;;;;;;;:::i;988:2549:0:-;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:0;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:0;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:0;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:0;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:0;;;;;;-1:-1:-1;2510:20:0;;-1:-1:-1;;;;;;2510:20:0;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:0;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:0;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:0;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:0;3499:31;;;;;;;;;;;988:2549;;;;;:::o;3439:2912:1:-;3813:23;3839:31;3858:11;3839:18;:31::i;:::-;3973:16;;;3987:1;3973:16;;;;;;;;;4027:25;;3813:57;;-1:-1:-1;3973:16:1;4027:25;4062:1090;4086:16;4082:1;:20;4062:1090;;;4162:44;4209:29;4239:1;4209:32;;;;;;;;;;;;;;;;;;4162:79;;4255:27;;:::i;:::-;-1:-1:-1;4285:222:1;;;;;;;;;;;;;;;;;;;;;;;4695:15;4656:54;;4569:191;;;;;;;;;;;;;;4839:20;4862:28;4881:8;4862:18;:28::i;:::-;4839:51;;4904:29;4936:53;4953:12;4967:18;4986:1;4967:21;;;;;;;;;;;;;;;;;;4936:16;:53::i;:::-;4904:85;-1:-1:-1;5088:53:1;:23;4904:85;5088:53;:30;:53;:::i;:::-;5062:79;-1:-1:-1;;4104:3:1;;;;;-1:-1:-1;4062:1090:1;;-1:-1:-1;;4062:1090:1;;-1:-1:-1;5193:13:1;;5170:20;5216:1129;5240:12;5236:1;:16;5216:1129;;;5351:9;;5386:1;;5351:6;;5358:1;;5351:9;;;;;;;;;;;;;;:23;;;:37;;;5347:84;;;5408:8;;5347:84;5537:23;5563:6;5570:1;5563:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;5610:28:1;;;5629:9;5610:28;5606:160;;;5684:41;:23;5715:9;5684:41;:30;:41;:::i;:::-;5658:67;;5743:8;;;5606:160;5857:20;5880:49;:23;5913:15;5880:49;:32;:49;:::i;:::-;5857:72;;5968:15;5943:100;;;;;;;;;;;;;;;;6201:25;;;;:38;;6230:9;6201:38;;:85;;-1:-1:-1;6243:43:1;:23;6276:9;6243:43;:32;:43;:::i;:::-;6176:158;;;;;;;;;;;;;;;;5216:1129;;;5254:3;;5216:1129;;;;3439:2912;;;;;;;;;:::o;1981:853::-;2350:30;2383:38;2404:11;:16;;;2383:20;:38::i;:::-;2350:71;;2508:1;2492:6;:13;:17;2488:340;;;2593:224;2647:11;2676:6;2700:20;2738:29;2785:18;2593:36;:224::i;:::-;1981:853;;;;;:::o;1339:33:9:-;;;;:::o;1500:745:2:-;1855:167;1892:11;1917:20;1951:29;1994:18;1855:23;:167::i;:::-;2068:8;;2109:16;;2139:25;;;;2178:16;;;;;2068:170;;;;;:8;;;;;:27;;:170;;2109:16;;2139:25;;2208:20;;2068:170;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2068:170:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2068:170:2;;;;1500:745;;;;:::o;8315:448:19:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:19;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:19;13631:2;13729:13;13723:20;;13292:490::o;1514:406:11:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:10:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;1089:2103:18:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:18;;-1:-1:-1;;;;;1089:2103:18;;;;:::o;3431:342::-;3580:19;;3543:4;;;3609:136;3633:6;3629:1;:10;3609:136;;;3683:6;3664:25;;:12;3677:1;3664:15;;;;;;;;;;;;;;;;;;:25;;;3660:75;;;3716:4;3709:11;;;;;;3660:75;3641:3;;3609:136;;;-1:-1:-1;3761:5:18;;3431:342;-1:-1:-1;;;;3431:342:18:o;6563:1760:1:-;6659:30;6705:15;6723:18;:4;6705:15;6723:18;:15;:18;:::i;:::-;6705:36;-1:-1:-1;6768:31:1;;;6780:19;6768:31;;:87;;-1:-1:-1;6815:40:1;;;6827:28;6815:40;6768:87;:142;;;-1:-1:-1;6871:39:1;;;6883:27;6871:39;6768:142;6751:1543;;;6971:27;;:::i;:::-;7044:11;;7030:26;;7044:4;;7041:1;;7030:26;:10;:26;:::i;:::-;7002:102;;;;;;;;;;;;;;7127:23;;;7148:1;7127:23;;;;;;;;;6970:134;;-1:-1:-1;7127:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7118:32;;7176:5;7164:6;7171:1;7164:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6751:1543:1;;;7215:38;;;7227:26;7215:38;;:101;;-1:-1:-1;7269:47:1;;;7281:35;7269:47;7215:101;:163;;;-1:-1:-1;7332:46:1;;;7344:34;7332:46;7215:163;:217;;;-1:-1:-1;7394:38:1;;;7406:26;7394:38;7215:217;:280;;;-1:-1:-1;7448:47:1;;;7460:35;7448:47;7215:280;:335;;;-1:-1:-1;7511:39:1;;;7523:27;7511:39;7215:335;:399;;;-1:-1:-1;7566:48:1;;;7578:36;7566:48;7215:399;7198:1096;;;7763:11;;7749:26;;7763:4;;7760:1;;7749:26;:10;:26;:::i;:::-;7721:104;;;;;;;;;;;;;;7710:115;;7198:1096;;;7846:33;;;7858:21;7846:33;7842:452;;;7940:31;;:::i;:::-;7973:32;;:::i;:::-;8051:11;;8037:26;;8051:4;;8048:1;;8037:26;:10;:26;:::i;:::-;8009:118;;;;;;;;;;;;;;8189:23;;;8210:1;8189:23;;;;;;;;;7939:188;;-1:-1:-1;7939:188:1;;-1:-1:-1;8189:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8180:32;;8238:9;8226:6;8233:1;8226:9;;;;;;;;;;;;;;;;;;:21;8261:9;;8273:10;;8261:6;;8268:1;;8261:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7842:452:1;-1:-1:-1;6563:1760:1;;;:::o;2167:1395:11:-;823:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;823:146:11;;;;;;;813:157;;;;;;;;;2410:16;;;;2400:27;;2283:14;;813:157;2283:14;;823:146;;;;2400:27;;;;823:146;2400:27;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2400:27:11;;;;;;;;;;;;2525:16;;2575:25;;;;2999:26;;;3125:15;;;3118:29;;;;3270:42;3251:62;;;3234:15;;;3227:87;;;;-1:-1:-1;;;;3364:2:11;3352:15;;3345:33;;;;-1:-1:-1;3519:3:11;3501:22;;;2167:1395::o;1872:924:9:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:10:-;810:183;;;;;;;;;;;;;;;;;;;2349:14;;;;810:183;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:10;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2476:40:10;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3229:15;;;3222:40;;;;3316:15;;;3309:49;;;;3424:2;3412:15;;3405:54;;;;-1:-1:-1;;3562:3:10;3544:22;;;;2248:1357;-1:-1:-1;;;2248:1357:10:o;1808:4337:19:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:19;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:19;1808:4337;;;:::o;15595:687::-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:19;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:19;87:34:-1;135:17;;-1:-1;6890:20:19;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;821:203:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;;728:14;357:611;;;;;;;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1457;;;;;;12605:3;12593:9;12584:7;12580:23;12576:33;12573:2;;;12622:1;12619;12612:12;12573:2;12657:31;;12708:18;12697:30;;12694:2;;;12740:1;12737;12730:12;12694:2;12760:87;12839:7;12830:6;12819:9;12815:22;12760:87;;;12750:97;;12636:217;12912:2;12901:9;12897:18;12884:32;12936:18;12928:6;12925:30;12922:2;;;12968:1;12965;12958:12;12922:2;12988:97;13077:7;13068:6;13057:9;13053:22;12988:97;;;12978:107;;12863:228;13150:2;13139:9;13135:18;13122:32;13174:18;13166:6;13163:30;13160:2;;;13206:1;13203;13196:12;13160:2;13226:62;13280:7;13271:6;13260:9;13256:22;13226:62;;;13216:72;;13101:193;13353:2;13342:9;13338:18;13325:32;13377:18;13369:6;13366:30;13363:2;;;13409:1;13406;13399:12;13363:2;13429:78;13499:7;13490:6;13479:9;13475:22;13429:78;;;13419:88;;13304:209;13572:3;13561:9;13557:19;13544:33;13597:18;13589:6;13586:30;13583:2;;;13629:1;13626;13619:12;13583:2;13649:83;13724:7;13715:6;13704:9;13700:22;13649:83;;;13639:93;;13523:215;12567:1181;;;;;;;;;13755:1157;;;;;14008:3;13996:9;13987:7;13983:23;13979:33;13976:2;;;14025:1;14022;14015:12;13976:2;14060:31;;14111:18;14100:30;;14097:2;;;14143:1;14140;14133:12;14097:2;14163:87;14242:7;14233:6;14222:9;14218:22;14163:87;;;14153:97;;14039:217;14315:2;14304:9;14300:18;14287:32;14339:18;14331:6;14328:30;14325:2;;;14371:1;14368;14361:12;14325:2;14391:62;14445:7;14436:6;14425:9;14421:22;14391:62;;;14381:72;;14266:193;14518:2;14507:9;14503:18;14490:32;14542:18;14534:6;14531:30;14528:2;;;14574:1;14571;14564:12;14528:2;14594:78;14664:7;14655:6;14644:9;14640:22;14594:78;;;14584:88;;14469:209;14737:2;14726:9;14722:18;14709:32;14761:18;14753:6;14750:30;14747:2;;;14793:1;14790;14783:12;14747:2;14813:83;14888:7;14879:6;14868:9;14864:22;14813:83;;;14803:93;;14688:214;13970:942;;;;;;;;14919:120;15002:31;15027:5;15002:31;;;14997:3;14990:44;14984:55;;;15046:120;15129:31;15154:5;15129:31;;15173:307;;15283:38;15315:5;15283:38;;;15338:6;15333:3;15326:19;15350:63;15406:6;15399:4;15394:3;15390:14;15383:4;15376:5;15372:16;15350:63;;;15445:29;15467:6;15445:29;;;15425:50;;;15438:4;15425:50;;15263:217;-1:-1;;;15263:217;15794:306;15959:2;15947:15;;15996:66;15991:2;15982:12;;15975:88;16091:2;16082:12;;15940:160;16109:306;16274:2;16262:15;;16311:66;16306:2;16297:12;;16290:88;16406:2;16397:12;;16255:160;16424:306;16589:2;16577:15;;16626:66;16621:2;16612:12;;16605:88;16721:2;16712:12;;16570:160;16739:306;16904:2;16892:15;;16941:66;16936:2;16927:12;;16920:88;17036:2;17027:12;;16885:160;17054:306;17219:2;17207:15;;17256:66;17251:2;17242:12;;17235:88;17351:2;17342:12;;17200:160;17369:306;17534:2;17522:15;;17571:66;17566:2;17557:12;;17550:88;17666:2;17657:12;;17515:160;17684:407;17849:2;17837:15;;17886:66;17881:2;17872:12;;17865:88;17987:66;17982:2;17973:12;;17966:88;18082:2;18073:12;;17830:261;18100:306;18265:2;18253:15;;18302:66;18297:2;18288:12;;18281:88;18397:2;18388:12;;18246:160;18415:407;18580:2;18568:15;;18617:66;18612:2;18603:12;;18596:88;18718:66;18713:2;18704:12;;18697:88;18813:2;18804:12;;18561:261;18831:306;18996:2;18984:15;;19033:66;19028:2;19019:12;;19012:88;19128:2;19119:12;;18977:160;19146:306;19311:2;19299:15;;19348:66;19343:2;19334:12;;19327:88;19443:2;19434:12;;19292:160;19461:306;19626:2;19614:15;;19663:66;19658:2;19649:12;;19642:88;19758:2;19749:12;;19607:160;19776:407;19941:2;19929:15;;19978:66;19973:2;19964:12;;19957:88;20079:66;20074:2;20065:12;;20058:88;20174:2;20165:12;;19922:261;20318:213;20436:2;20421:18;;20450:71;20425:9;20494:6;20450:71;;20538:213;20656:2;20641:18;;20670:71;20645:9;20714:6;20670:71;;20758:407;20949:2;20963:47;;;20934:18;;21024:131;20934:18;21024:131;;21172:407;21363:2;21377:47;;;21348:18;;21438:131;21348:18;21438:131;;21586:407;21777:2;21791:47;;;21762:18;;21852:131;21762:18;21852:131;;22000:407;22191:2;22205:47;;;22176:18;;22266:131;22176:18;22266:131;;22414:407;22605:2;22619:47;;;22590:18;;22680:131;22590:18;22680:131;;22828:407;23019:2;23033:47;;;23004:18;;23094:131;23004:18;23094:131;;23242:407;23433:2;23447:47;;;23418:18;;23508:131;23418:18;23508:131;;23656:407;23847:2;23861:47;;;23832:18;;23922:131;23832:18;23922:131;;24070:407;24261:2;24275:47;;;24246:18;;24336:131;24246:18;24336:131;;24484:407;24675:2;24689:47;;;24660:18;;24750:131;24660:18;24750:131;;24898:407;25089:2;25103:47;;;25074:18;;25164:131;25074:18;25164:131;;25312:407;25503:2;25517:47;;;25488:18;;25578:131;25488:18;25578:131;;25726:407;25917:2;25931:47;;;25902:18;;25992:131;25902:18;25992:131;;26140:707;26374:3;26359:19;;26389:71;26363:9;26433:6;26389:71;;;26471:72;26539:2;26528:9;26524:18;26515:6;26471:72;;;26591:9;26585:4;26581:20;26576:2;26565:9;26561:18;26554:48;26616:72;26683:4;26674:6;26616:72;;;26608:80;;26736:9;26730:4;26726:20;26721:2;26710:9;26706:18;26699:48;26761:76;26832:4;26823:6;26761:76;;;26753:84;26345:502;-1:-1;;;;;;26345:502;26854:256;26916:2;26910:9;26942:17;;;27017:18;27002:34;;27038:22;;;26999:62;26996:2;;;27074:1;27071;27064:12;26996:2;27090;27083:22;26894:216;;-1:-1;26894:216;27117:263;;27281:18;27273:6;27270:30;27267:2;;;27313:1;27310;27303:12;27267:2;-1:-1;27342:4;27330:17;;;27360:15;;27204:176;28216:254;;28355:18;28347:6;28344:30;28341:2;;;28387:1;28384;28377:12;28341:2;-1:-1;28460:4;28431;28408:17;;;;28427:9;28404:33;28450:15;;28278:192;28742:87;28812:12;;28796:33;28934:105;;29003:31;29028:5;29003:31;;29046:79;29115:5;29098:27;29132:128;29212:42;29201:54;;29184:76;29638:145;29719:6;29714:3;29709;29696:30;-1:-1;29775:1;29757:16;;29750:27;29689:94;29792:268;29857:1;29864:101;29878:6;29875:1;29872:13;29864:101;;;29945:11;;;29939:18;29926:11;;;29919:39;29900:2;29893:10;29864:101;;;29980:6;29977:1;29974:13;29971:2;;;30045:1;30036:6;30031:3;30027:16;30020:27;29971:2;29841:219;;;;;30068:97;30156:2;30136:14;30152:7;30132:28;;30116:49" + } + } + }, + "sources": { + "src/TEC.sol": { + "id": 3 + }, + "src/libs/LibConstants.sol": { + "id": 8 + }, + "src/interfaces/ITransactions.sol": { + "id": 7 + }, + "src/MixinSignatureValidator.sol": { + "id": 0 + }, + "@0x/contracts-utils/contracts/src/LibBytes.sol": { + "id": 19 + }, + "src/mixins/MSignatureValidator.sol": { + "id": 12 + }, + "src/interfaces/ISignatureValidator.sol": { + "id": 4 + }, + "src/MixinTECApprovalVerifier.sol": { + "id": 1 + }, + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { + "id": 16 + }, + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { + "id": 17 + }, + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { + "id": 15 + }, + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { + "id": 18 + }, + "src/libs/LibTECApproval.sol": { + "id": 10 + }, + "src/libs/LibEIP712Domain.sol": { + "id": 9 + }, + "src/libs/LibZeroExTransaction.sol": { + "id": 11 + }, + "src/mixins/MTECApprovalVerifier.sol": { + "id": 13 + }, + "src/interfaces/ITECApprovalVerifier.sol": { + "id": 5 + }, + "src/MixinTECCore.sol": { + "id": 2 + }, + "src/interfaces/ITECCore.sol": { + "id": 6 + } + }, + "sourceCodes": { + "src/TEC.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibConstants.sol\";\nimport \"./MixinSignatureValidator.sol\";\nimport \"./MixinTECApprovalVerifier.sol\";\nimport \"./MixinTECCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract TEC is\n LibConstants,\n MixinSignatureValidator,\n MixinTECApprovalVerifier,\n MixinTECCore\n{\n constructor (address _exchange)\n public\n LibConstants(_exchange)\n {}\n}\n", + "src/libs/LibConstants.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ITransactions.sol\";\n\n\ncontract LibConstants {\n\n // solhint-disable-next-line var-name-mixedcase\n ITransactions internal EXCHANGE;\n\n constructor (address _exchange)\n public\n {\n EXCHANGE = ITransactions(_exchange);\n }\n}\n", + "src/interfaces/ITransactions.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\npragma solidity ^0.5.3;\n\n\ncontract ITransactions {\n\n /// @dev Executes an exchange method call in the context of signer.\n /// @param salt Arbitrary number to ensure uniqueness of transaction hash.\n /// @param signerAddress Address of transaction signer.\n /// @param data AbiV2 encoded calldata.\n /// @param signature Proof of signer transaction by signer.\n function executeTransaction(\n uint256 salt,\n address signerAddress,\n bytes calldata data,\n bytes calldata signature\n )\n external;\n}\n", + "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", + "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", + "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", + "src/MixinTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibTECApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinTECApprovalVerifier is\n LibExchangeSelectors,\n LibTECApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MTECApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i < signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n TECApproval memory approval = TECApproval({\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getTECApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i < ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n address approverAddress = orders[i].feeRecipientAddress;\n if (approverAddress == tx.origin) {\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n\n // The Ethereum transaction signer must be the 0x transaction signer or an approver of the 0x transaction\n require(\n transaction.signerAddress == tx.origin || approvalSignerAddresses.contains(tx.origin),\n \"INVALID_SENDER\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return true;\n }\n }\n return false;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool, uint256)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return (true, i);\n }\n }\n return (false, 0);\n }\n}\n", + "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/mixins/MTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ITECApprovalVerifier.sol\";\n\n\ncontract MTECApprovalVerifier is\n ITECApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", + "src/interfaces/ITECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n", + "src/MixinTECCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./libs/LibConstants.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\nimport \"./interfaces/ITECCore.sol\";\n\n\ncontract MixinTECCore is\n LibConstants,\n MTECApprovalVerifier,\n ITECCore\n{\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n {\n // Validate that the 0x transaction has been approves by each feeRecipient\n assertValidTECApprovals(\n transaction,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n\n // Execute the transaction\n EXCHANGE.executeTransaction(\n transaction.salt,\n transaction.signerAddress,\n transaction.data,\n transactionSignature\n );\n }\n}\n", + "src/interfaces/ITECCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECCore {\n\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public;\n}\n" + }, + "sourceTreeHashHex": "0x7a77910e6871475307d987db7acdd08f6297afd28c030b873e402a238a3ecbb8", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "remappings": [ + "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} \ No newline at end of file diff --git a/contracts/tec/generated-artifacts/TestLibs.json b/contracts/tec/generated-artifacts/TestLibs.json new file mode 100644 index 0000000000..432f60dd7e --- /dev/null +++ b/contracts/tec/generated-artifacts/TestLibs.json @@ -0,0 +1,149 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "TestLibs", + "compilerOutput": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + } + ], + "name": "publicGetTransactionHash", + "outputs": [ + { + "name": "transactionHash", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "transactionHash", + "type": "bytes32" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256" + } + ], + "name": "approval", + "type": "tuple" + } + ], + "name": "publicGetTECApprovalHash", + "outputs": [ + { + "name": "approvalHash", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EIP712_DOMAIN_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x60806040526200001060a062000260565b604051602081830303815290604052805190602001206060604051908101604052806027815260200162000a89602791398051602091820120604080518082018252600581527f312e302e300000000000000000000000000000000000000000000000000000009084015251620000ad93927f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c9130910162000210565b60408051601f198184030181529190528051602090910120600055620002af565b620000e3620000dd82620002ac565b620002ac565b82525050565b6000620000f8600c83620002a7565b7f737472696e67206e616d652c00000000000000000000000000000000000000008152600c0192915050565b600062000133601983620002a7565b7f6164647265737320766572696679696e67436f6e747261637400000000000000815260190192915050565b60006200016e600183620002a7565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000620001a9600f83620002a7565b7f737472696e672076657273696f6e2c00000000000000000000000000000000008152600f0192915050565b6000620001e4600d83620002a7565b7f454950373132446f6d61696e28000000000000000000000000000000000000008152600d0192915050565b60006200021e8287620000ce565b602082019150620002308286620000ce565b602082019150620002428285620000ce565b602082019150620002548284620000ce565b50602001949350505050565b60006200026d82620001d5565b91506200027a82620000e9565b915062000287826200019a565b9150620002948262000124565b9150620002a1826200015f565b92915050565b919050565b90565b6107ca80620002bf6000396000f3fe608060405234801561001057600080fd5b506004361061005d577c010000000000000000000000000000000000000000000000000000000060003504637b837ad18114610062578063c27af17d1461008b578063e306f7791461009e575b600080fd5b6100756100703660046103a6565b6100a6565b60405161008291906106af565b60405180910390f35b610075610099366004610369565b6100b7565b6100756100c2565b60006100b1826100c8565b92915050565b60006100b1826100db565b60005481565b60006100b16100d6836100e9565b61016f565b60006100b16100d6836101af565b6000806040516020016100fb9061064c565b604051602081830303815290604052805190602001209050600083604001516040516101279190610640565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101c190610683565b604051602081830303815290604052805190602001209050600083602001516040516101ed9190610640565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b60006102288235610736565b9392505050565b60006102288235610733565b6000601f8201831361024c57600080fd5b813561025f61025a826106e4565b6106bd565b9150808252602083016020830185838301111561027b57600080fd5b610286838284610754565b50505092915050565b6000606082840312156102a157600080fd5b6102ab60606106bd565b905060006102b9848461022f565b825250602082013567ffffffffffffffff8111156102d657600080fd5b6102e28482850161023b565b60208301525060406102f68482850161022f565b60408301525092915050565b60006060828403121561031457600080fd5b61031e60606106bd565b9050600061032c848461022f565b825250602061033d8484830161021c565b602083015250604082013567ffffffffffffffff81111561035d57600080fd5b6102f68482850161023b565b60006020828403121561037b57600080fd5b813567ffffffffffffffff81111561039257600080fd5b61039e8482850161028f565b949350505050565b6000602082840312156103b857600080fd5b813567ffffffffffffffff8111156103cf57600080fd5b61039e84828501610302565b6103e481610733565b82525050565b60006103f58261072a565b6103ff818561072e565b935061040f818560208601610760565b9290920192915050565b600061042660128361072e565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b600061045f601b8361072e565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061049860018361072e565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104d1600c8361072e565b7f544543417070726f76616c2800000000000000000000000000000000000000008152600c0192915050565b600061050a600d8361072e565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610543600a8361072e565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b600061057c60258361072e565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105db60168361072e565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b600061061460188361072e565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061022882846103ea565b600061065782610419565b9150610662826104fd565b915061066d826105ce565b915061067882610536565b91506100b18261048b565b600061068e826104c4565b915061069982610607565b91506106a482610452565b91506106788261056f565b602081016100b182846103db565b60405181810167ffffffffffffffff811182821017156106dc57600080fd5b604052919050565b600067ffffffffffffffff8211156106fb57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff82166100b1565b82818337506000910152565b60005b8381101561077b578181015183820152602001610763565b8381111561078a576000848401525b5050505056fea265627a7a72305820e79099828fe54268e059e14b945d673ffe00fbab54c6062a3ae99557212dffc96c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH3 0x10 PUSH1 0xA0 PUSH3 0x260 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA89 PUSH1 0x27 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE MLOAD PUSH3 0xAD SWAP4 SWAP3 PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C SWAP2 ADDRESS SWAP2 ADD PUSH3 0x210 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH3 0x2AF JUMP JUMPDEST PUSH3 0xE3 PUSH3 0xDD DUP3 PUSH3 0x2AC JUMP JUMPDEST PUSH3 0x2AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xF8 PUSH1 0xC DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x133 PUSH1 0x19 DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 DUP2 MSTORE PUSH1 0x19 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x16E PUSH1 0x1 DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1A9 PUSH1 0xF DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xF ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1E4 PUSH1 0xD DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x21E DUP3 DUP8 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x230 DUP3 DUP7 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x242 DUP3 DUP6 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x254 DUP3 DUP5 PUSH3 0xCE JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26D DUP3 PUSH3 0x1D5 JUMP JUMPDEST SWAP2 POP PUSH3 0x27A DUP3 PUSH3 0xE9 JUMP JUMPDEST SWAP2 POP PUSH3 0x287 DUP3 PUSH3 0x19A JUMP JUMPDEST SWAP2 POP PUSH3 0x294 DUP3 PUSH3 0x124 JUMP JUMPDEST SWAP2 POP PUSH3 0x2A1 DUP3 PUSH3 0x15F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7CA DUP1 PUSH3 0x2BF PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5D JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x7B837AD1 DUP2 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC27AF17D EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x9E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75 PUSH2 0x70 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x6AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x75 PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x369 JUMP JUMPDEST PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x75 PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFB SWAP1 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD PUSH1 0x20 DUP1 DUP10 ADD MLOAD SWAP7 DUP6 MSTORE DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C1 SWAP1 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD SWAP7 DUP3 ADD MLOAD SWAP5 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x733 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F PUSH2 0x25A DUP3 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x6BD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP4 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AB PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31E PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x32C DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x33D DUP5 DUP5 DUP4 ADD PUSH2 0x21C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x28F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP3 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3FF DUP2 DUP6 PUSH2 0x72E JUMP JUMPDEST SWAP4 POP PUSH2 0x40F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x760 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426 PUSH1 0x12 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45F PUSH1 0x1B DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498 PUSH1 0x1 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D1 PUSH1 0xC DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A PUSH1 0xD DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x543 PUSH1 0xA DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57C PUSH1 0x25 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E7432353620617070726F76616C45787069726174696F6E54696D655365 DUP2 MSTORE PUSH32 0x636F6E6473000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x25 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DB PUSH1 0x16 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x614 PUSH1 0x18 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x657 DUP3 PUSH2 0x419 JUMP JUMPDEST SWAP2 POP PUSH2 0x662 DUP3 PUSH2 0x4FD JUMP JUMPDEST SWAP2 POP PUSH2 0x66D DUP3 PUSH2 0x5CE JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP2 POP PUSH2 0xB1 DUP3 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68E DUP3 PUSH2 0x4C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x699 DUP3 PUSH2 0x607 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A4 DUP3 PUSH2 0x452 JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB1 DUP3 DUP5 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x77B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x763 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x78A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xe7 SWAP1 SWAP10 DUP3 DUP16 0xe5 TIMESTAMP PUSH9 0xE059E14B945D673FFE STOP 0xfb 0xab SLOAD 0xc6 MOD 0x2a GASPRICE 0xe9 SWAP6 JUMPI 0x21 0x2d SELFDESTRUCT 0xc9 PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ADDRESS PUSH25 0x2050726F746F636F6C20547261646520457865637574696F6E KECCAK256 NUMBER PUSH16 0x6F7264696E61746F7200000000000000 ", + "sourceMap": "731:1174:3:-;;;1083:148:0;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1083:148:0;;;1073:159;;;;;;1549:18;;;;;;;;;;;;;;;;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;1583:39;;1652:4;;1454:214;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1454:214:0;;;1444:225;;49:4:-1;1444:225:0;;;;1423:18;:246;731:1174:3;;5:159:-1;106:52;126:31;151:5;126:31;;;106:52;;;101:3;94:65;88:76;;;172:400;;350:85;432:2;427:3;350:85;;;468:66;448:87;;563:2;554:12;;336:236;-1:-1;;336:236;581:400;;759:85;841:2;836:3;759:85;;;877:66;857:87;;972:2;963:12;;745:236;-1:-1;;745:236;990:398;;1168:84;1250:1;1245:3;1168:84;;;1285:66;1265:87;;1380:1;1371:11;;1154:234;-1:-1;;1154:234;1397:400;;1575:85;1657:2;1652:3;1575:85;;;1693:66;1673:87;;1788:2;1779:12;;1561:236;-1:-1;;1561:236;1806:400;;1984:85;2066:2;2061:3;1984:85;;;2102:66;2082:87;;2197:2;2188:12;;1970:236;-1:-1;;1970:236;2380:661;;2583:75;2654:3;2645:6;2583:75;;;2680:2;2675:3;2671:12;2664:19;;2694:75;2765:3;2756:6;2694:75;;;2791:2;2786:3;2782:12;2775:19;;2805:75;2876:3;2867:6;2805:75;;;2902:2;2897:3;2893:12;2886:19;;2916:75;2987:3;2978:6;2916:75;;;-1:-1;3013:2;3004:12;;2571:470;-1:-1;;;;2571:470;3048:1440;;3651:148;3795:3;3651:148;;;3644:155;;3817:148;3961:3;3817:148;;;3810:155;;3983:148;4127:3;3983:148;;;3976:155;;4149:148;4293:3;4149:148;;;4142:155;;4315:148;4459:3;4315:148;;;4308:155;3632:856;-1:-1;;3632:856;4496:145;4632:3;4610:31;-1:-1;4610:31;4649:79;4718:5;4701:27;;731:1174:3;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b506004361061005d577c010000000000000000000000000000000000000000000000000000000060003504637b837ad18114610062578063c27af17d1461008b578063e306f7791461009e575b600080fd5b6100756100703660046103a6565b6100a6565b60405161008291906106af565b60405180910390f35b610075610099366004610369565b6100b7565b6100756100c2565b60006100b1826100c8565b92915050565b60006100b1826100db565b60005481565b60006100b16100d6836100e9565b61016f565b60006100b16100d6836101af565b6000806040516020016100fb9061064c565b604051602081830303815290604052805190602001209050600083604001516040516101279190610640565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101c190610683565b604051602081830303815290604052805190602001209050600083602001516040516101ed9190610640565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b60006102288235610736565b9392505050565b60006102288235610733565b6000601f8201831361024c57600080fd5b813561025f61025a826106e4565b6106bd565b9150808252602083016020830185838301111561027b57600080fd5b610286838284610754565b50505092915050565b6000606082840312156102a157600080fd5b6102ab60606106bd565b905060006102b9848461022f565b825250602082013567ffffffffffffffff8111156102d657600080fd5b6102e28482850161023b565b60208301525060406102f68482850161022f565b60408301525092915050565b60006060828403121561031457600080fd5b61031e60606106bd565b9050600061032c848461022f565b825250602061033d8484830161021c565b602083015250604082013567ffffffffffffffff81111561035d57600080fd5b6102f68482850161023b565b60006020828403121561037b57600080fd5b813567ffffffffffffffff81111561039257600080fd5b61039e8482850161028f565b949350505050565b6000602082840312156103b857600080fd5b813567ffffffffffffffff8111156103cf57600080fd5b61039e84828501610302565b6103e481610733565b82525050565b60006103f58261072a565b6103ff818561072e565b935061040f818560208601610760565b9290920192915050565b600061042660128361072e565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b600061045f601b8361072e565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061049860018361072e565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104d1600c8361072e565b7f544543417070726f76616c2800000000000000000000000000000000000000008152600c0192915050565b600061050a600d8361072e565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610543600a8361072e565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b600061057c60258361072e565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105db60168361072e565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b600061061460188361072e565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061022882846103ea565b600061065782610419565b9150610662826104fd565b915061066d826105ce565b915061067882610536565b91506100b18261048b565b600061068e826104c4565b915061069982610607565b91506106a482610452565b91506106788261056f565b602081016100b182846103db565b60405181810167ffffffffffffffff811182821017156106dc57600080fd5b604052919050565b600067ffffffffffffffff8211156106fb57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff82166100b1565b82818337506000910152565b60005b8381101561077b578181015183820152602001610763565b8381111561078a576000848401525b5050505056fea265627a7a72305820e79099828fe54268e059e14b945d673ffe00fbab54c6062a3ae99557212dffc96c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5D JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x7B837AD1 DUP2 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC27AF17D EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x9E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75 PUSH2 0x70 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x6AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x75 PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x369 JUMP JUMPDEST PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x75 PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFB SWAP1 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD PUSH1 0x20 DUP1 DUP10 ADD MLOAD SWAP7 DUP6 MSTORE DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C1 SWAP1 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD SWAP7 DUP3 ADD MLOAD SWAP5 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x733 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F PUSH2 0x25A DUP3 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x6BD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP4 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AB PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31E PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x32C DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x33D DUP5 DUP5 DUP4 ADD PUSH2 0x21C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x28F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP3 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3FF DUP2 DUP6 PUSH2 0x72E JUMP JUMPDEST SWAP4 POP PUSH2 0x40F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x760 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426 PUSH1 0x12 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45F PUSH1 0x1B DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498 PUSH1 0x1 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D1 PUSH1 0xC DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A PUSH1 0xD DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x543 PUSH1 0xA DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57C PUSH1 0x25 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E7432353620617070726F76616C45787069726174696F6E54696D655365 DUP2 MSTORE PUSH32 0x636F6E6473000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x25 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DB PUSH1 0x16 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x614 PUSH1 0x18 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x657 DUP3 PUSH2 0x419 JUMP JUMPDEST SWAP2 POP PUSH2 0x662 DUP3 PUSH2 0x4FD JUMP JUMPDEST SWAP2 POP PUSH2 0x66D DUP3 PUSH2 0x5CE JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP2 POP PUSH2 0xB1 DUP3 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68E DUP3 PUSH2 0x4C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x699 DUP3 PUSH2 0x607 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A4 DUP3 PUSH2 0x452 JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB1 DUP3 DUP5 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x77B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x763 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x78A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xe7 SWAP1 SWAP10 DUP3 DUP16 0xe5 TIMESTAMP PUSH9 0xE059E14B945D673FFE STOP 0xfb 0xab SLOAD 0xc6 MOD 0x2a GASPRICE 0xe9 SWAP6 JUMPI 0x21 0x2d SELFDESTRUCT 0xc9 PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ", + "sourceMap": "731:1174:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;731:1174:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:244;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1150:223;;;;;;;;;:::i;1339:33:0:-;;;:::i;1659:244:3:-;1776:23;1833:31;1852:11;1833:18;:31::i;:::-;1815:49;1659:244;-1:-1:-1;;1659:244:3:o;1150:223::-;1258:20;1309:28;1328:8;1309:18;:28::i;1339:33:0:-;;;;:::o;1514:406:2:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:1:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;2167:1395:2:-;2283:14;2313:18;823:146;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;823:146:2;;;813:157;;;;;;2313:58;;2381:16;2410:11;:16;;;2400:27;;;;;;;;;;;;;;;;;2525:16;;2575:25;;;;;2999:26;;;3125:15;;3118:29;3270:42;3251:62;;;3234:15;;;3227:87;3364:2;3352:15;;3345:33;;;;-1:-1:-1;3519:3:2;3501:22;;;-1:-1:-1;2167:1395:2;;;:::o;1872:924:0:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:1:-;2349:14;2379:18;810:183;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:1;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3241:2;3229:15;;3222:40;;;;3316:15;;3309:49;;;;-1:-1:-1;3424:2:1;3412:15;;3405:54;-1:-1:-1;3562:3:1;3544:22;;;2248:1357::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;130:118;;197:46;235:6;222:20;197:46;;256:432;;346:4;334:17;;330:27;-1:-1;320:2;;371:1;368;361:12;320:2;408:6;395:20;430:60;445:44;482:6;445:44;;;430:60;;;421:69;;510:6;503:5;496:21;546:4;538:6;534:17;579:4;572:5;568:16;614:3;605:6;600:3;596:16;593:25;590:2;;;631:1;628;621:12;590:2;641:41;675:6;670:3;665;641:41;;;313:375;;;;;;;;736:755;;852:4;840:9;835:3;831:19;827:30;824:2;;;870:1;867;860:12;824:2;888:20;903:4;888:20;;;879:29;-1:-1;969:1;1000:49;1045:3;1025:9;1000:49;;;976:74;;-1:-1;1155:2;1140:18;;1127:32;1179:18;1168:30;;1165:2;;;1211:1;1208;1201:12;1165:2;1246:54;1296:3;1287:6;1276:9;1272:22;1246:54;;;1239:4;1232:5;1228:16;1221:80;1071:241;1387:2;1420:49;1465:3;1456:6;1445:9;1441:22;1420:49;;;1413:4;1406:5;1402:16;1395:75;1322:159;818:673;;;;;1550:719;;1673:4;1661:9;1656:3;1652:19;1648:30;1645:2;;;1691:1;1688;1681:12;1645:2;1709:20;1724:4;1709:20;;;1700:29;-1:-1;1779:1;1810:49;1855:3;1835:9;1810:49;;;1786:74;;-1:-1;1930:2;1963:49;2008:3;1984:22;;;1963:49;;;1956:4;1949:5;1945:16;1938:75;1881:143;2102:2;2091:9;2087:18;2074:32;2126:18;2118:6;2115:30;2112:2;;;2158:1;2155;2148:12;2112:2;2193:54;2243:3;2234:6;2223:9;2219:22;2193:54;;2401:381;;2532:2;2520:9;2511:7;2507:23;2503:32;2500:2;;;2548:1;2545;2538:12;2500:2;2583:31;;2634:18;2623:30;;2620:2;;;2666:1;2663;2656:12;2620:2;2686:80;2758:7;2749:6;2738:9;2734:22;2686:80;;;2676:90;2494:288;-1:-1;;;;2494:288;2789:395;;2927:2;2915:9;2906:7;2902:23;2898:32;2895:2;;;2943:1;2940;2933:12;2895:2;2978:31;;3029:18;3018:30;;3015:2;;;3061:1;3058;3051:12;3015:2;3081:87;3160:7;3151:6;3140:9;3136:22;3081:87;;3191:120;3274:31;3299:5;3274:31;;;3269:3;3262:44;3256:55;;;3318:348;;3442:34;3470:5;3442:34;;;3488:88;3569:6;3564:3;3488:88;;;3481:95;;3581:52;3626:6;3621:3;3614:4;3607:5;3603:16;3581:52;;;3645:16;;;;;3422:244;-1:-1;;3422:244;3674:400;;3852:85;3934:2;3929:3;3852:85;;;3970:66;3950:87;;4065:2;4056:12;;3838:236;-1:-1;;3838:236;4083:400;;4261:85;4343:2;4338:3;4261:85;;;4379:66;4359:87;;4474:2;4465:12;;4247:236;-1:-1;;4247:236;4492:398;;4670:84;4752:1;4747:3;4670:84;;;4787:66;4767:87;;4882:1;4873:11;;4656:234;-1:-1;;4656:234;4899:400;;5077:85;5159:2;5154:3;5077:85;;;5195:66;5175:87;;5290:2;5281:12;;5063:236;-1:-1;;5063:236;5308:400;;5486:85;5568:2;5563:3;5486:85;;;5604:66;5584:87;;5699:2;5690:12;;5472:236;-1:-1;;5472:236;5717:400;;5895:85;5977:2;5972:3;5895:85;;;6013:66;5993:87;;6108:2;6099:12;;5881:236;-1:-1;;5881:236;6126:501;;6304:85;6386:2;6381:3;6304:85;;;6422:66;6402:87;;6523:66;6518:2;6509:12;;6502:88;6618:2;6609:12;;6290:337;-1:-1;;6290:337;6636:400;;6814:85;6896:2;6891:3;6814:85;;;6932:66;6912:87;;7027:2;7018:12;;6800:236;-1:-1;;6800:236;7045:400;;7223:85;7305:2;7300:3;7223:85;;;7341:66;7321:87;;7436:2;7427:12;;7209:236;-1:-1;;7209:236;7453:254;;7593:89;7678:3;7669:6;7593:89;;7714:1440;;8317:148;8461:3;8317:148;;;8310:155;;8483:148;8627:3;8483:148;;;8476:155;;8649:148;8793:3;8649:148;;;8642:155;;8815:148;8959:3;8815:148;;;8808:155;;8981:148;9125:3;8981:148;;9161:1440;;9764:148;9908:3;9764:148;;;9757:155;;9930:148;10074:3;9930:148;;;9923:155;;10096:148;10240:3;10096:148;;;10089:155;;10262:148;10406:3;10262:148;;10608:213;10726:2;10711:18;;10740:71;10715:9;10784:6;10740:71;;10828:256;10890:2;10884:9;10916:17;;;10991:18;10976:34;;11012:22;;;10973:62;10970:2;;;11048:1;11045;11038:12;10970:2;11064;11057:22;10868:216;;-1:-1;10868:216;11091:254;;11230:18;11222:6;11219:30;11216:2;;;11262:1;11259;11252:12;11216:2;-1:-1;11335:4;11306;11283:17;;;;11302:9;11279:33;11325:15;;11153:192;11352:87;11422:12;;11406:33;11447:144;11582:3;11560:31;-1:-1;11560:31;11753:79;11822:5;11805:27;11839:105;;12117:42;12106:54;;11908:31;12089:76;12259:145;12340:6;12335:3;12330;12317:30;-1:-1;12396:1;12378:16;;12371:27;12310:94;12413:268;12478:1;12485:101;12499:6;12496:1;12493:13;12485:101;;;12566:11;;;12560:18;12547:11;;;12540:39;12521:2;12514:10;12485:101;;;12601:6;12598:1;12595:13;12592:2;;;12666:1;12657:6;12652:3;12648:16;12641:27;12592:2;12462:219;;;;" + } + } + }, + "sources": { + "test/TestLibs.sol": { + "id": 3 + }, + "src/libs/LibTECApproval.sol": { + "id": 1 + }, + "src/libs/LibEIP712Domain.sol": { + "id": 0 + }, + "src/libs/LibZeroExTransaction.sol": { + "id": 2 + } + }, + "sourceCodes": { + "test/TestLibs.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../src/libs/LibTECApproval.sol\";\nimport \"../src/libs/LibZeroExTransaction.sol\";\n\n\ncontract TestLibs is\n LibTECApproval,\n LibZeroExTransaction\n{\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function publicGetTECApprovalHash(TECApproval memory approval)\n public\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = getTECApprovalHash(approval);\n return approvalHash;\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function publicGetTransactionHash(ZeroExTransaction memory transaction)\n public\n view\n returns (bytes32 transactionHash)\n {\n transactionHash = getTransactionHash(transaction);\n return transactionHash;\n }\n}\n", + "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n" + }, + "sourceTreeHashHex": "0x2d256b13f2542ebde5880e37c88e2fee3a815d26882e4fdaefd5df58adfa3005", + "compiler": { + "name": "solc", + "version": "0.5.4+commit.9549d8ff.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "remappings": [ + "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} \ No newline at end of file diff --git a/contracts/tec/generated-artifacts/TestMixins.json b/contracts/tec/generated-artifacts/TestMixins.json new file mode 100644 index 0000000000..f743664278 --- /dev/null +++ b/contracts/tec/generated-artifacts/TestMixins.json @@ -0,0 +1,284 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "TestMixins", + "compilerOutput": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "bytes32" + }, + { + "name": "signature", + "type": "bytes" + } + ], + "name": "getSignerAddress", + "outputs": [ + { + "name": "signerAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "components": [ + { + "name": "makerAddress", + "type": "address" + }, + { + "name": "takerAddress", + "type": "address" + }, + { + "name": "feeRecipientAddress", + "type": "address" + }, + { + "name": "senderAddress", + "type": "address" + }, + { + "name": "makerAssetAmount", + "type": "uint256" + }, + { + "name": "takerAssetAmount", + "type": "uint256" + }, + { + "name": "makerFee", + "type": "uint256" + }, + { + "name": "takerFee", + "type": "uint256" + }, + { + "name": "expirationTimeSeconds", + "type": "uint256" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "makerAssetData", + "type": "bytes" + }, + { + "name": "takerAssetData", + "type": "bytes" + } + ], + "name": "orders", + "type": "tuple[]" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTransactionOrdersApproval", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTECApprovals", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EIP712_DOMAIN_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x7f454950373132446f6d61696e280000000000000000000000000000000000000060a09081527f737472696e67206e616d652c000000000000000000000000000000000000000060ad527f737472696e672076657273696f6e2c000000000000000000000000000000000060b9527f6164647265737320766572696679696e67436f6e74726163740000000000000060c8527f290000000000000000000000000000000000000000000000000000000000000060e152604260808190529020610142604052602760e2818152906123ce610102398051602091820120604080518082018252600581527f312e302e3000000000000000000000000000000000000000000000000000000090840152805180840194909452838101919091527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060840152306080808501919091528151808503909101815260a090930190528151910120600055612259806101756000396000f3fe608060405234801561001057600080fd5b5060043610610068577c010000000000000000000000000000000000000000000000000000000060003504630f7d8e39811461006d57806355fc233c146100965780636c42c828146100ab578063e306f779146100be575b600080fd5b61008061007b366004611a91565b6100d3565b60405161008d919061201d565b60405180910390f35b6100a96100a4366004611b77565b6104c8565b005b6100a96100b9366004611c63565b610732565b6100c6610761565b60405161008d919061202b565b600080825111151561011a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120d9565b60405180910390fd5b600061012583610767565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff821610610187576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b60008160ff16600381111561019857fe5b905060008160038111156101a857fe5b14156101e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120c9565b60018160038111156101ee57fe5b141561032c57835160411461022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561024057fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050600061028286600163ffffffff61082b16565b9050600061029787602163ffffffff61082b16565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104c295505050505050565b600281600381111561033a57fe5b141561049057835160411461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561038c57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103ce86600163ffffffff61082b16565b905060006103e387602163ffffffff61082b16565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b92915050565b60006104d386610876565b60408051600080825260208201909252845192935091905b818110156105bf576000868281518110151561050357fe5b906020019060200201519050610517611422565b5060408051606081018252868152602081018a905290810182905242821161056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612089565b600061057682610889565b9050600061059b828a8781518110151561058c57fe5b906020019060200201516100d3565b90506105ad878263ffffffff61089716565b965050600190930192506104eb915050565b50865160005b818110156107265788516000908a90839081106105de57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561060d5761071e565b6000898281518110151561061d57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106635761065b853263ffffffff61089716565b94505061071e565b6000610675868363ffffffff61096116565b90508015156106b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612049565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806106e357506106e3863263ffffffff61096116565b151561071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120e9565b50505b6001016105c5565b50505050505050505050565b606061074185604001516109d9565b905060008151111561075a5761075a85828686866104c8565b5050505050565b60005481565b60008082511115156107a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120b9565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106107d557fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b60008160200183511015151561086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612099565b50016020015190565b60006104c261088483610e91565b61104d565b60006104c26108848361108d565b8151604051606091849060208082028084018201929101828510156108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612079565b82851115610902576108fb85858361121f565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110151561092f57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b818110156109ce578373ffffffffffffffffffffffffffffffffffffffff16858281518110151561099557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614156109c6576001925050506104c2565b600101610968565b506000949350505050565b606060006109ed838263ffffffff6112e316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610a8057507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610acc57507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610b5657610ad9611447565b8351610aef90859060049063ffffffff61135016565b806020019051610b029190810190611ae3565b604080516001808252818301909252919250816020015b610b21611447565b815260200190600190039081610b1957905050925080836000815181101515610b4657fe5b6020908102909101015250610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610be757507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610c3357507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610c7f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610ccb57507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610d1757507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610d6357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610d98578251610d7e90849060049063ffffffff61135016565b806020019051610d919190810190611a54565b9150610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610e8b57610dea611447565b610df2611447565b8451610e0890869060049063ffffffff61135016565b806020019051610e1b9190810190611b18565b60408051600280825260608201909252929450909250816020015b610e3e611447565b815260200190600190039081610e3657905050935081846000815181101515610e6357fe5b602090810290910101528351819085906001908110610e7e57fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b60208310610fc557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610f88565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256121fb8239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b602083106111ad57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611170565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611249576001816020036101000a0380198351168185511680821786525050506112de565b82821415611256576112de565b828211156112905760208103905080820181840181515b8285101561128857845186526020958601959094019361126d565b9052506112de565b60208103905080820181840183515b818612156112d957825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061129f565b855250505b505050565b600081600401835110151515611325576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120f9565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60608183111561138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612059565b83518211156113c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612069565b8282036040519080825280601f01601f1916602001820160405280156113f4576020820181803883390190505b5090506114156114038261141c565b8461140d8761141c565b01835161121f565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114158235612197565b60006114158251612197565b6000601f8201831361152a57600080fd5b813561153d61153882612130565b612109565b81815260209384019390925082018360005b8381101561157b578135860161156588826116bb565b845250602092830192919091019060010161154f565b5050505092915050565b6000601f8201831361159657600080fd5b81516115a461153882612130565b81815260209384019390925082018360005b8381101561157b57815186016115cc8882611899565b84525060209283019291909101906001016115b6565b6000601f820183136115f357600080fd5b813561160161153882612130565b81815260209384019390925082018360005b8381101561157b57813586016116298882611750565b8452506020928301929190910190600101611613565b6000601f8201831361165057600080fd5b813561165e61153882612130565b9150818183526020840193506020810190508385602084028201111561168357600080fd5b60005b8381101561157b578161169988826116af565b8452506020928301929190910190600101611686565b600061141582356121a2565b6000601f820183136116cc57600080fd5b81356116da61153882612151565b915080825260208301602083018583830111156116f657600080fd5b6117018382846121be565b50505092915050565b6000601f8201831361171b57600080fd5b815161172961153882612151565b9150808252602083016020830185838301111561174557600080fd5b6117018382846121ca565b6000610180828403121561176357600080fd5b61176e610180612109565b9050600061177c8484611501565b825250602061178d84848301611501565b60208301525060406117a184828501611501565b60408301525060606117b584828501611501565b60608301525060806117c9848285016116af565b60808301525060a06117dd848285016116af565b60a08301525060c06117f1848285016116af565b60c08301525060e0611805848285016116af565b60e08301525061010061181a848285016116af565b61010083015250610120611830848285016116af565b6101208301525061014082013567ffffffffffffffff81111561185257600080fd5b61185e848285016116bb565b6101408301525061016082013567ffffffffffffffff81111561188057600080fd5b61188c848285016116bb565b6101608301525092915050565b600061018082840312156118ac57600080fd5b6118b7610180612109565b905060006118c5848461150d565b82525060206118d68484830161150d565b60208301525060406118ea8482850161150d565b60408301525060606118fe8482850161150d565b606083015250608061191284828501611a48565b60808301525060a061192684828501611a48565b60a08301525060c061193a84828501611a48565b60c08301525060e061194e84828501611a48565b60e08301525061010061196384828501611a48565b6101008301525061012061197984828501611a48565b6101208301525061014082015167ffffffffffffffff81111561199b57600080fd5b6119a78482850161170a565b6101408301525061016082015167ffffffffffffffff8111156119c957600080fd5b61188c8482850161170a565b6000606082840312156119e757600080fd5b6119f16060612109565b905060006119ff84846116af565b8252506020611a1084848301611501565b602083015250604082013567ffffffffffffffff811115611a3057600080fd5b611a3c848285016116bb565b60408301525092915050565b600061141582516121a2565b600060208284031215611a6657600080fd5b815167ffffffffffffffff811115611a7d57600080fd5b611a8984828501611585565b949350505050565b60008060408385031215611aa457600080fd5b6000611ab085856116af565b925050602083013567ffffffffffffffff811115611acd57600080fd5b611ad9858286016116bb565b9150509250929050565b600060208284031215611af557600080fd5b815167ffffffffffffffff811115611b0c57600080fd5b611a8984828501611899565b60008060408385031215611b2b57600080fd5b825167ffffffffffffffff811115611b4257600080fd5b611b4e85828601611899565b925050602083015167ffffffffffffffff811115611b6b57600080fd5b611ad985828601611899565b600080600080600060a08688031215611b8f57600080fd5b853567ffffffffffffffff811115611ba657600080fd5b611bb2888289016119d5565b955050602086013567ffffffffffffffff811115611bcf57600080fd5b611bdb888289016115e2565b945050604086013567ffffffffffffffff811115611bf857600080fd5b611c04888289016116bb565b935050606086013567ffffffffffffffff811115611c2157600080fd5b611c2d8882890161163f565b925050608086013567ffffffffffffffff811115611c4a57600080fd5b611c5688828901611519565b9150509295509295909350565b60008060008060808587031215611c7957600080fd5b843567ffffffffffffffff811115611c9057600080fd5b611c9c878288016119d5565b945050602085013567ffffffffffffffff811115611cb957600080fd5b611cc5878288016116bb565b935050604085013567ffffffffffffffff811115611ce257600080fd5b611cee8782880161163f565b925050606085013567ffffffffffffffff811115611d0b57600080fd5b611d1787828801611519565b91505092959194509250565b611d2c81612197565b82525050565b611d2c816121a2565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104c28284611d23565b602081016104c28284611d32565b602080825281016104c281611d3b565b602080825281016104c281611d6b565b602080825281016104c281611d9b565b602080825281016104c281611dcb565b602080825281016104c281611dfb565b602080825281016104c281611e2b565b602080825281016104c281611e5b565b602080825281016104c281611eb1565b602080825281016104c281611ee1565b602080825281016104c281611f37565b602080825281016104c281611f67565b602080825281016104c281611f97565b602080825281016104c281611fc7565b60405181810167ffffffffffffffff8111828210171561212857600080fd5b604052919050565b600067ffffffffffffffff82111561214757600080fd5b5060209081020190565b600067ffffffffffffffff82111561216857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60006104c2826121a5565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b838110156121e55781810151838201526020016121cd565b838111156121f4576000848401525b5050505056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a72305820a7dc4db5ec1936281b9753d70f5cf618cba7a682c53caa572159a5117a653c926c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", + "opcodes": "PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0xA0 SWAP1 DUP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0xAD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0xB9 MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0xC8 MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0xE1 MSTORE PUSH1 0x42 PUSH1 0x80 DUP2 SWAP1 MSTORE SWAP1 KECCAK256 PUSH2 0x142 PUSH1 0x40 MSTORE PUSH1 0x27 PUSH1 0xE2 DUP2 DUP2 MSTORE SWAP1 PUSH2 0x23CE PUSH2 0x102 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE DUP1 MLOAD DUP1 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP4 ADD SWAP1 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH2 0x2259 DUP1 PUSH2 0x175 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x68 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0xF7D8E39 DUP2 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xBE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x80 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x1A91 JUMP JUMPDEST PUSH2 0xD3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA9 PUSH2 0xA4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B77 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA9 PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x732 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x202B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x11A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x125 DUP4 PUSH2 0x767 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x187 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A8 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1EE JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x32C JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x240 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x282 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x297 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4C2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x33A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x490 JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3CE DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E3 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP7 PUSH2 0x876 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5BF JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x503 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x517 PUSH2 0x1422 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x56B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x576 DUP3 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x59B DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x58C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0xD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x5AD DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x4EB SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x726 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x5DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x60D JUMPI PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x61D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x663 JUMPI PUSH2 0x65B DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x675 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x6E3 JUMPI POP PUSH2 0x6E3 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20E9 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5C5 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x741 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x9D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x75A JUMPI PUSH2 0x75A DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4C8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20B9 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x7D5 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x86D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2099 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0xE91 JUMP JUMPDEST PUSH2 0x104D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0x108D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2079 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x902 JUMPI PUSH2 0x8FB DUP6 DUP6 DUP4 PUSH2 0x121F JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x92F JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CE JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x995 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9C6 JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4C2 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x968 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9ED DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x12E3 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xA80 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xACC JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xB56 JUMPI PUSH2 0xAD9 PUSH2 0x1447 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xAEF SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xB02 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xB21 PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xB19 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB46 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xBE7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC33 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC7F JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCCB JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD17 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD63 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xD98 JUMPI DUP3 MLOAD PUSH2 0xD7E SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD91 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1A54 JUMP JUMPDEST SWAP2 POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xE8B JUMPI PUSH2 0xDEA PUSH2 0x1447 JUMP JUMPDEST PUSH2 0xDF2 PUSH2 0x1447 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xE08 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE1B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE3E PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xE36 JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE63 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xE7E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xFC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xF88 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x21FB DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x11AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1170 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1249 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x1256 JUMPI PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1290 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1288 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x126D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x12DE JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x12D9 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x129F JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x1325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20F9 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2059 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x13C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2069 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1415 PUSH2 0x1403 DUP3 PUSH2 0x141C JUMP JUMPDEST DUP5 PUSH2 0x140D DUP8 PUSH2 0x141C JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x121F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x152A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x153D PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST PUSH2 0x2109 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1565 DUP9 DUP3 PUSH2 0x16BB JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x154F JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15A4 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x15CC DUP9 DUP3 PUSH2 0x1899 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x15F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1601 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1629 DUP9 DUP3 PUSH2 0x1750 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1613 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x165E PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 PUSH2 0x1699 DUP9 DUP3 PUSH2 0x16AF JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1686 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x16F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21BE JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x171B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1729 PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21CA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x176E PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x177C DUP5 DUP5 PUSH2 0x1501 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x178D DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x17A1 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x17B5 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x17C9 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x17DD DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x17F1 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1805 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x181A DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1830 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185E DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B7 PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18C5 DUP5 DUP5 PUSH2 0x150D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x18D6 DUP5 DUP5 DUP4 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x18EA DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x18FE DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1912 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x1926 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x193A DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x194E DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1963 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1979 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A7 DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19F1 PUSH1 0x60 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x19FF DUP5 DUP5 PUSH2 0x16AF JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1A10 DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1585 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1AB0 DUP6 DUP6 PUSH2 0x16AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B4E DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1B8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP9 DUP3 DUP10 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BDB DUP9 DUP3 DUP10 ADD PUSH2 0x15E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C04 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C2D DUP9 DUP3 DUP10 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C56 DUP9 DUP3 DUP10 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1C79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C9C DUP8 DUP3 DUP9 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CC5 DUP8 DUP3 DUP9 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CEE DUP8 DUP3 DUP9 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D17 DUP8 DUP3 DUP9 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x2197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D32 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D9B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DCB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DFB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E5B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EB1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EE1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F67 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F97 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1FC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 DUP3 PUSH2 0x21A5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21E5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x21CD JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A72305820A7DC4DB5 0xec NOT CALLDATASIZE 0x28 SHL SWAP8 MSTORE8 0xd7 0xf 0x5c 0xf6 XOR 0xcb 0xa7 0xa6 DUP3 0xc5 EXTCODECOPY 0xaa JUMPI 0x21 MSIZE 0xa5 GT PUSH27 0x653C926C6578706572696D656E74616CF5003730782050726F746F PUSH4 0x6F6C2054 PUSH19 0x61646520457865637574696F6E20436F6F7264 PUSH10 0x6E61746F720000000000 ", + "sourceMap": "1083:148:9:-;;;;;;;;;;;;;;;;;22:32:-1;768:83:14;6:49:-1;;;1073:159:9;;1549:18;768:83:14;1549:18:9;;1083:148;1549:18;;;1083:148;1549:18;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;;;;;;;;;;;;;1583:39;1454:214;;;;1652:4;1454:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1454:214:9;;;;;;1444:225;;;;;-1:-1:-1;1423:246:9;768:83:14;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610068577c010000000000000000000000000000000000000000000000000000000060003504630f7d8e39811461006d57806355fc233c146100965780636c42c828146100ab578063e306f779146100be575b600080fd5b61008061007b366004611a91565b6100d3565b60405161008d919061201d565b60405180910390f35b6100a96100a4366004611b77565b6104c8565b005b6100a96100b9366004611c63565b610732565b6100c6610761565b60405161008d919061202b565b600080825111151561011a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120d9565b60405180910390fd5b600061012583610767565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff821610610187576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b60008160ff16600381111561019857fe5b905060008160038111156101a857fe5b14156101e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120c9565b60018160038111156101ee57fe5b141561032c57835160411461022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561024057fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050600061028286600163ffffffff61082b16565b9050600061029787602163ffffffff61082b16565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104c295505050505050565b600281600381111561033a57fe5b141561049057835160411461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561038c57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103ce86600163ffffffff61082b16565b905060006103e387602163ffffffff61082b16565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b92915050565b60006104d386610876565b60408051600080825260208201909252845192935091905b818110156105bf576000868281518110151561050357fe5b906020019060200201519050610517611422565b5060408051606081018252868152602081018a905290810182905242821161056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612089565b600061057682610889565b9050600061059b828a8781518110151561058c57fe5b906020019060200201516100d3565b90506105ad878263ffffffff61089716565b965050600190930192506104eb915050565b50865160005b818110156107265788516000908a90839081106105de57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561060d5761071e565b6000898281518110151561061d57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106635761065b853263ffffffff61089716565b94505061071e565b6000610675868363ffffffff61096116565b90508015156106b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612049565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806106e357506106e3863263ffffffff61096116565b151561071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120e9565b50505b6001016105c5565b50505050505050505050565b606061074185604001516109d9565b905060008151111561075a5761075a85828686866104c8565b5050505050565b60005481565b60008082511115156107a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120b9565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106107d557fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b60008160200183511015151561086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612099565b50016020015190565b60006104c261088483610e91565b61104d565b60006104c26108848361108d565b8151604051606091849060208082028084018201929101828510156108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612079565b82851115610902576108fb85858361121f565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110151561092f57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b818110156109ce578373ffffffffffffffffffffffffffffffffffffffff16858281518110151561099557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614156109c6576001925050506104c2565b600101610968565b506000949350505050565b606060006109ed838263ffffffff6112e316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610a8057507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610acc57507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610b5657610ad9611447565b8351610aef90859060049063ffffffff61135016565b806020019051610b029190810190611ae3565b604080516001808252818301909252919250816020015b610b21611447565b815260200190600190039081610b1957905050925080836000815181101515610b4657fe5b6020908102909101015250610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610be757507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610c3357507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610c7f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610ccb57507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610d1757507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610d6357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610d98578251610d7e90849060049063ffffffff61135016565b806020019051610d919190810190611a54565b9150610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610e8b57610dea611447565b610df2611447565b8451610e0890869060049063ffffffff61135016565b806020019051610e1b9190810190611b18565b60408051600280825260608201909252929450909250816020015b610e3e611447565b815260200190600190039081610e3657905050935081846000815181101515610e6357fe5b602090810290910101528351819085906001908110610e7e57fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b60208310610fc557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610f88565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256121fb8239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b602083106111ad57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611170565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611249576001816020036101000a0380198351168185511680821786525050506112de565b82821415611256576112de565b828211156112905760208103905080820181840181515b8285101561128857845186526020958601959094019361126d565b9052506112de565b60208103905080820181840183515b818612156112d957825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061129f565b855250505b505050565b600081600401835110151515611325576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120f9565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60608183111561138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612059565b83518211156113c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612069565b8282036040519080825280601f01601f1916602001820160405280156113f4576020820181803883390190505b5090506114156114038261141c565b8461140d8761141c565b01835161121f565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114158235612197565b60006114158251612197565b6000601f8201831361152a57600080fd5b813561153d61153882612130565b612109565b81815260209384019390925082018360005b8381101561157b578135860161156588826116bb565b845250602092830192919091019060010161154f565b5050505092915050565b6000601f8201831361159657600080fd5b81516115a461153882612130565b81815260209384019390925082018360005b8381101561157b57815186016115cc8882611899565b84525060209283019291909101906001016115b6565b6000601f820183136115f357600080fd5b813561160161153882612130565b81815260209384019390925082018360005b8381101561157b57813586016116298882611750565b8452506020928301929190910190600101611613565b6000601f8201831361165057600080fd5b813561165e61153882612130565b9150818183526020840193506020810190508385602084028201111561168357600080fd5b60005b8381101561157b578161169988826116af565b8452506020928301929190910190600101611686565b600061141582356121a2565b6000601f820183136116cc57600080fd5b81356116da61153882612151565b915080825260208301602083018583830111156116f657600080fd5b6117018382846121be565b50505092915050565b6000601f8201831361171b57600080fd5b815161172961153882612151565b9150808252602083016020830185838301111561174557600080fd5b6117018382846121ca565b6000610180828403121561176357600080fd5b61176e610180612109565b9050600061177c8484611501565b825250602061178d84848301611501565b60208301525060406117a184828501611501565b60408301525060606117b584828501611501565b60608301525060806117c9848285016116af565b60808301525060a06117dd848285016116af565b60a08301525060c06117f1848285016116af565b60c08301525060e0611805848285016116af565b60e08301525061010061181a848285016116af565b61010083015250610120611830848285016116af565b6101208301525061014082013567ffffffffffffffff81111561185257600080fd5b61185e848285016116bb565b6101408301525061016082013567ffffffffffffffff81111561188057600080fd5b61188c848285016116bb565b6101608301525092915050565b600061018082840312156118ac57600080fd5b6118b7610180612109565b905060006118c5848461150d565b82525060206118d68484830161150d565b60208301525060406118ea8482850161150d565b60408301525060606118fe8482850161150d565b606083015250608061191284828501611a48565b60808301525060a061192684828501611a48565b60a08301525060c061193a84828501611a48565b60c08301525060e061194e84828501611a48565b60e08301525061010061196384828501611a48565b6101008301525061012061197984828501611a48565b6101208301525061014082015167ffffffffffffffff81111561199b57600080fd5b6119a78482850161170a565b6101408301525061016082015167ffffffffffffffff8111156119c957600080fd5b61188c8482850161170a565b6000606082840312156119e757600080fd5b6119f16060612109565b905060006119ff84846116af565b8252506020611a1084848301611501565b602083015250604082013567ffffffffffffffff811115611a3057600080fd5b611a3c848285016116bb565b60408301525092915050565b600061141582516121a2565b600060208284031215611a6657600080fd5b815167ffffffffffffffff811115611a7d57600080fd5b611a8984828501611585565b949350505050565b60008060408385031215611aa457600080fd5b6000611ab085856116af565b925050602083013567ffffffffffffffff811115611acd57600080fd5b611ad9858286016116bb565b9150509250929050565b600060208284031215611af557600080fd5b815167ffffffffffffffff811115611b0c57600080fd5b611a8984828501611899565b60008060408385031215611b2b57600080fd5b825167ffffffffffffffff811115611b4257600080fd5b611b4e85828601611899565b925050602083015167ffffffffffffffff811115611b6b57600080fd5b611ad985828601611899565b600080600080600060a08688031215611b8f57600080fd5b853567ffffffffffffffff811115611ba657600080fd5b611bb2888289016119d5565b955050602086013567ffffffffffffffff811115611bcf57600080fd5b611bdb888289016115e2565b945050604086013567ffffffffffffffff811115611bf857600080fd5b611c04888289016116bb565b935050606086013567ffffffffffffffff811115611c2157600080fd5b611c2d8882890161163f565b925050608086013567ffffffffffffffff811115611c4a57600080fd5b611c5688828901611519565b9150509295509295909350565b60008060008060808587031215611c7957600080fd5b843567ffffffffffffffff811115611c9057600080fd5b611c9c878288016119d5565b945050602085013567ffffffffffffffff811115611cb957600080fd5b611cc5878288016116bb565b935050604085013567ffffffffffffffff811115611ce257600080fd5b611cee8782880161163f565b925050606085013567ffffffffffffffff811115611d0b57600080fd5b611d1787828801611519565b91505092959194509250565b611d2c81612197565b82525050565b611d2c816121a2565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104c28284611d23565b602081016104c28284611d32565b602080825281016104c281611d3b565b602080825281016104c281611d6b565b602080825281016104c281611d9b565b602080825281016104c281611dcb565b602080825281016104c281611dfb565b602080825281016104c281611e2b565b602080825281016104c281611e5b565b602080825281016104c281611eb1565b602080825281016104c281611ee1565b602080825281016104c281611f37565b602080825281016104c281611f67565b602080825281016104c281611f97565b602080825281016104c281611fc7565b60405181810167ffffffffffffffff8111828210171561212857600080fd5b604052919050565b600067ffffffffffffffff82111561214757600080fd5b5060209081020190565b600067ffffffffffffffff82111561216857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60006104c2826121a5565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b838110156121e55781810151838201526020016121cd565b838111156121f4576000848401525b5050505056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a72305820a7dc4db5ec1936281b9753d70f5cf618cba7a682c53caa572159a5117a653c926c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x68 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0xF7D8E39 DUP2 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xBE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x80 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x1A91 JUMP JUMPDEST PUSH2 0xD3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA9 PUSH2 0xA4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B77 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA9 PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x732 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x202B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x11A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x125 DUP4 PUSH2 0x767 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x187 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A8 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1EE JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x32C JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x240 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x282 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x297 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4C2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x33A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x490 JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3CE DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E3 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP7 PUSH2 0x876 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5BF JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x503 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x517 PUSH2 0x1422 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x56B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x576 DUP3 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x59B DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x58C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0xD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x5AD DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x4EB SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x726 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x5DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x60D JUMPI PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x61D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x663 JUMPI PUSH2 0x65B DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x675 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x6E3 JUMPI POP PUSH2 0x6E3 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20E9 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5C5 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x741 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x9D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x75A JUMPI PUSH2 0x75A DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4C8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20B9 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x7D5 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x86D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2099 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0xE91 JUMP JUMPDEST PUSH2 0x104D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0x108D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2079 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x902 JUMPI PUSH2 0x8FB DUP6 DUP6 DUP4 PUSH2 0x121F JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x92F JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CE JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x995 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9C6 JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4C2 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x968 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9ED DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x12E3 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xA80 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xACC JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xB56 JUMPI PUSH2 0xAD9 PUSH2 0x1447 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xAEF SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xB02 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xB21 PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xB19 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB46 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xBE7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC33 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC7F JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCCB JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD17 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD63 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xD98 JUMPI DUP3 MLOAD PUSH2 0xD7E SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD91 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1A54 JUMP JUMPDEST SWAP2 POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xE8B JUMPI PUSH2 0xDEA PUSH2 0x1447 JUMP JUMPDEST PUSH2 0xDF2 PUSH2 0x1447 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xE08 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE1B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE3E PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xE36 JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE63 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xE7E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xFC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xF88 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x21FB DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x11AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1170 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1249 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x1256 JUMPI PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1290 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1288 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x126D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x12DE JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x12D9 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x129F JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x1325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20F9 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2059 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x13C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2069 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1415 PUSH2 0x1403 DUP3 PUSH2 0x141C JUMP JUMPDEST DUP5 PUSH2 0x140D DUP8 PUSH2 0x141C JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x121F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x152A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x153D PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST PUSH2 0x2109 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1565 DUP9 DUP3 PUSH2 0x16BB JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x154F JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15A4 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x15CC DUP9 DUP3 PUSH2 0x1899 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x15F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1601 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1629 DUP9 DUP3 PUSH2 0x1750 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1613 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x165E PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 PUSH2 0x1699 DUP9 DUP3 PUSH2 0x16AF JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1686 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x16F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21BE JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x171B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1729 PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21CA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x176E PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x177C DUP5 DUP5 PUSH2 0x1501 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x178D DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x17A1 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x17B5 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x17C9 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x17DD DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x17F1 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1805 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x181A DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1830 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185E DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B7 PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18C5 DUP5 DUP5 PUSH2 0x150D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x18D6 DUP5 DUP5 DUP4 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x18EA DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x18FE DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1912 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x1926 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x193A DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x194E DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1963 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1979 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A7 DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19F1 PUSH1 0x60 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x19FF DUP5 DUP5 PUSH2 0x16AF JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1A10 DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1585 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1AB0 DUP6 DUP6 PUSH2 0x16AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B4E DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1B8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP9 DUP3 DUP10 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BDB DUP9 DUP3 DUP10 ADD PUSH2 0x15E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C04 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C2D DUP9 DUP3 DUP10 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C56 DUP9 DUP3 DUP10 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1C79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C9C DUP8 DUP3 DUP9 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CC5 DUP8 DUP3 DUP9 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CEE DUP8 DUP3 DUP9 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D17 DUP8 DUP3 DUP9 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x2197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D32 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D9B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DCB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DFB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E5B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EB1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EE1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F67 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F97 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1FC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 DUP3 PUSH2 0x21A5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21E5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x21CD JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A72305820A7DC4DB5 0xec NOT CALLDATASIZE 0x28 SHL SWAP8 MSTORE8 0xd7 0xf 0x5c 0xf6 XOR 0xcb 0xa7 0xa6 DUP3 0xc5 EXTCODECOPY 0xaa JUMPI 0x21 MSIZE 0xa5 GT PUSH27 0x653C926C6578706572696D656E74616CF500370000000000000000 ", + "sourceMap": "768:83:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;768:83:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3439:2912:1;;;;;;;;;:::i;:::-;;1981:853;;;;;;;;;:::i;1339:33:9:-;;;:::i;:::-;;;;;;;;988:2549:0;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:0;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:0;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:0;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:0;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:0;;;;;;-1:-1:-1;2510:20:0;;-1:-1:-1;;;;;;2510:20:0;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:0;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:0;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:0;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:0;3499:31;;;;;;;;;;;988:2549;;;;;:::o;3439:2912:1:-;3813:23;3839:31;3858:11;3839:18;:31::i;:::-;3973:16;;;3987:1;3973:16;;;;;;;;;4027:25;;3813:57;;-1:-1:-1;3973:16:1;4027:25;4062:1090;4086:16;4082:1;:20;4062:1090;;;4162:44;4209:29;4239:1;4209:32;;;;;;;;;;;;;;;;;;4162:79;;4255:27;;:::i;:::-;-1:-1:-1;4285:222:1;;;;;;;;;;;;;;;;;;;;;;;4695:15;4656:54;;4569:191;;;;;;;;;;;;;;4839:20;4862:28;4881:8;4862:18;:28::i;:::-;4839:51;;4904:29;4936:53;4953:12;4967:18;4986:1;4967:21;;;;;;;;;;;;;;;;;;4936:16;:53::i;:::-;4904:85;-1:-1:-1;5088:53:1;:23;4904:85;5088:53;:30;:53;:::i;:::-;5062:79;-1:-1:-1;;4104:3:1;;;;;-1:-1:-1;4062:1090:1;;-1:-1:-1;;4062:1090:1;;-1:-1:-1;5193:13:1;;5170:20;5216:1129;5240:12;5236:1;:16;5216:1129;;;5351:9;;5386:1;;5351:6;;5358:1;;5351:9;;;;;;;;;;;;;;:23;;;:37;;;5347:84;;;5408:8;;5347:84;5537:23;5563:6;5570:1;5563:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;5610:28:1;;;5629:9;5610:28;5606:160;;;5684:41;:23;5715:9;5684:41;:30;:41;:::i;:::-;5658:67;;5743:8;;;5606:160;5857:20;5880:49;:23;5913:15;5880:49;:32;:49;:::i;:::-;5857:72;;5968:15;5943:100;;;;;;;;;;;;;;;;6201:25;;;;:38;;6230:9;6201:38;;:85;;-1:-1:-1;6243:43:1;:23;6276:9;6243:43;:32;:43;:::i;:::-;6176:158;;;;;;;;;;;;;;;;5216:1129;;;5254:3;;5216:1129;;;;3439:2912;;;;;;;;;:::o;1981:853::-;2350:30;2383:38;2404:11;:16;;;2383:20;:38::i;:::-;2350:71;;2508:1;2492:6;:13;:17;2488:340;;;2593:224;2647:11;2676:6;2700:20;2738:29;2785:18;2593:36;:224::i;:::-;1981:853;;;;;:::o;1339:33:9:-;;;;:::o;8315:448:19:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:19;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:19;13631:2;13729:13;13723:20;;13292:490::o;1514:406:11:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:10:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;1089:2103:18:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:18;;-1:-1:-1;;;;;1089:2103:18;;;;:::o;3431:342::-;3580:19;;3543:4;;;3609:136;3633:6;3629:1;:10;3609:136;;;3683:6;3664:25;;:12;3677:1;3664:15;;;;;;;;;;;;;;;;;;:25;;;3660:75;;;3716:4;3709:11;;;;;;3660:75;3641:3;;3609:136;;;-1:-1:-1;3761:5:18;;3431:342;-1:-1:-1;;;;3431:342:18:o;6563:1760:1:-;6659:30;6705:15;6723:18;:4;6705:15;6723:18;:15;:18;:::i;:::-;6705:36;-1:-1:-1;6768:31:1;;;6780:19;6768:31;;:87;;-1:-1:-1;6815:40:1;;;6827:28;6815:40;6768:87;:142;;;-1:-1:-1;6871:39:1;;;6883:27;6871:39;6768:142;6751:1543;;;6971:27;;:::i;:::-;7044:11;;7030:26;;7044:4;;7041:1;;7030:26;:10;:26;:::i;:::-;7002:102;;;;;;;;;;;;;;7127:23;;;7148:1;7127:23;;;;;;;;;6970:134;;-1:-1:-1;7127:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7118:32;;7176:5;7164:6;7171:1;7164:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6751:1543:1;;;7215:38;;;7227:26;7215:38;;:101;;-1:-1:-1;7269:47:1;;;7281:35;7269:47;7215:101;:163;;;-1:-1:-1;7332:46:1;;;7344:34;7332:46;7215:163;:217;;;-1:-1:-1;7394:38:1;;;7406:26;7394:38;7215:217;:280;;;-1:-1:-1;7448:47:1;;;7460:35;7448:47;7215:280;:335;;;-1:-1:-1;7511:39:1;;;7523:27;7511:39;7215:335;:399;;;-1:-1:-1;7566:48:1;;;7578:36;7566:48;7215:399;7198:1096;;;7763:11;;7749:26;;7763:4;;7760:1;;7749:26;:10;:26;:::i;:::-;7721:104;;;;;;;;;;;;;;7710:115;;7198:1096;;;7846:33;;;7858:21;7846:33;7842:452;;;7940:31;;:::i;:::-;7973:32;;:::i;:::-;8051:11;;8037:26;;8051:4;;8048:1;;8037:26;:10;:26;:::i;:::-;8009:118;;;;;;;;;;;;;;8189:23;;;8210:1;8189:23;;;;;;;;;7939:188;;-1:-1:-1;7939:188:1;;-1:-1:-1;8189:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8180:32;;8238:9;8226:6;8233:1;8226:9;;;;;;;;;;;;;;;;;;:21;8261:9;;8273:10;;8261:6;;8268:1;;8261:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7842:452:1;-1:-1:-1;6563:1760:1;;;:::o;2167:1395:11:-;823:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;823:146:11;;;;;;;813:157;;;;;;;;;2410:16;;;;2400:27;;2283:14;;813:157;2283:14;;823:146;;;;2400:27;;;;823:146;2400:27;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2400:27:11;;;;;;;;;;;;2525:16;;2575:25;;;;2999:26;;;3125:15;;;3118:29;;;;3270:42;3251:62;;;3234:15;;;3227:87;;;;-1:-1:-1;;;;3364:2:11;3352:15;;3345:33;;;;-1:-1:-1;3519:3:11;3501:22;;;2167:1395::o;1872:924:9:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:10:-;810:183;;;;;;;;;;;;;;;;;;;2349:14;;;;810:183;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:10;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2476:40:10;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3229:15;;;3222:40;;;;3316:15;;;3309:49;;;;3424:2;3412:15;;3405:54;;;;-1:-1:-1;;3562:3:10;3544:22;;;;2248:1357;-1:-1:-1;;;2248:1357:10:o;1808:4337:19:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:19;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:19;1808:4337;;;:::o;15595:687::-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:19;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:19;87:34:-1;135:17;;-1:-1;6890:20:19;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;768:83:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;;728:14;357:611;;;;;;;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1457;;;;;;12605:3;12593:9;12584:7;12580:23;12576:33;12573:2;;;12622:1;12619;12612:12;12573:2;12657:31;;12708:18;12697:30;;12694:2;;;12740:1;12737;12730:12;12694:2;12760:87;12839:7;12830:6;12819:9;12815:22;12760:87;;;12750:97;;12636:217;12912:2;12901:9;12897:18;12884:32;12936:18;12928:6;12925:30;12922:2;;;12968:1;12965;12958:12;12922:2;12988:97;13077:7;13068:6;13057:9;13053:22;12988:97;;;12978:107;;12863:228;13150:2;13139:9;13135:18;13122:32;13174:18;13166:6;13163:30;13160:2;;;13206:1;13203;13196:12;13160:2;13226:62;13280:7;13271:6;13260:9;13256:22;13226:62;;;13216:72;;13101:193;13353:2;13342:9;13338:18;13325:32;13377:18;13369:6;13366:30;13363:2;;;13409:1;13406;13399:12;13363:2;13429:78;13499:7;13490:6;13479:9;13475:22;13429:78;;;13419:88;;13304:209;13572:3;13561:9;13557:19;13544:33;13597:18;13589:6;13586:30;13583:2;;;13629:1;13626;13619:12;13583:2;13649:83;13724:7;13715:6;13704:9;13700:22;13649:83;;;13639:93;;13523:215;12567:1181;;;;;;;;;13755:1157;;;;;14008:3;13996:9;13987:7;13983:23;13979:33;13976:2;;;14025:1;14022;14015:12;13976:2;14060:31;;14111:18;14100:30;;14097:2;;;14143:1;14140;14133:12;14097:2;14163:87;14242:7;14233:6;14222:9;14218:22;14163:87;;;14153:97;;14039:217;14315:2;14304:9;14300:18;14287:32;14339:18;14331:6;14328:30;14325:2;;;14371:1;14368;14361:12;14325:2;14391:62;14445:7;14436:6;14425:9;14421:22;14391:62;;;14381:72;;14266:193;14518:2;14507:9;14503:18;14490:32;14542:18;14534:6;14531:30;14528:2;;;14574:1;14571;14564:12;14528:2;14594:78;14664:7;14655:6;14644:9;14640:22;14594:78;;;14584:88;;14469:209;14737:2;14726:9;14722:18;14709:32;14761:18;14753:6;14750:30;14747:2;;;14793:1;14790;14783:12;14747:2;14813:83;14888:7;14879:6;14868:9;14864:22;14813:83;;;14803:93;;14688:214;13970:942;;;;;;;;14919:120;15002:31;15027:5;15002:31;;;14997:3;14990:44;14984:55;;;15046:120;15129:31;15154:5;15129:31;;15174:306;15339:2;15327:15;;15376:66;15371:2;15362:12;;15355:88;15471:2;15462:12;;15320:160;15489:306;15654:2;15642:15;;15691:66;15686:2;15677:12;;15670:88;15786:2;15777:12;;15635:160;15804:306;15969:2;15957:15;;16006:66;16001:2;15992:12;;15985:88;16101:2;16092:12;;15950:160;16119:306;16284:2;16272:15;;16321:66;16316:2;16307:12;;16300:88;16416:2;16407:12;;16265:160;16434:306;16599:2;16587:15;;16636:66;16631:2;16622:12;;16615:88;16731:2;16722:12;;16580:160;16749:306;16914:2;16902:15;;16951:66;16946:2;16937:12;;16930:88;17046:2;17037:12;;16895:160;17064:407;17229:2;17217:15;;17266:66;17261:2;17252:12;;17245:88;17367:66;17362:2;17353:12;;17346:88;17462:2;17453:12;;17210:261;17480:306;17645:2;17633:15;;17682:66;17677:2;17668:12;;17661:88;17777:2;17768:12;;17626:160;17795:407;17960:2;17948:15;;17997:66;17992:2;17983:12;;17976:88;18098:66;18093:2;18084:12;;18077:88;18193:2;18184:12;;17941:261;18211:306;18376:2;18364:15;;18413:66;18408:2;18399:12;;18392:88;18508:2;18499:12;;18357:160;18526:306;18691:2;18679:15;;18728:66;18723:2;18714:12;;18707:88;18823:2;18814:12;;18672:160;18841:306;19006:2;18994:15;;19043:66;19038:2;19029:12;;19022:88;19138:2;19129:12;;18987:160;19156:407;19321:2;19309:15;;19358:66;19353:2;19344:12;;19337:88;19459:66;19454:2;19445:12;;19438:88;19554:2;19545:12;;19302:261;19571:213;19689:2;19674:18;;19703:71;19678:9;19747:6;19703:71;;19791:213;19909:2;19894:18;;19923:71;19898:9;19967:6;19923:71;;20011:407;20202:2;20216:47;;;20187:18;;20277:131;20187:18;20277:131;;20425:407;20616:2;20630:47;;;20601:18;;20691:131;20601:18;20691:131;;20839:407;21030:2;21044:47;;;21015:18;;21105:131;21015:18;21105:131;;21253:407;21444:2;21458:47;;;21429:18;;21519:131;21429:18;21519:131;;21667:407;21858:2;21872:47;;;21843:18;;21933:131;21843:18;21933:131;;22081:407;22272:2;22286:47;;;22257:18;;22347:131;22257:18;22347:131;;22495:407;22686:2;22700:47;;;22671:18;;22761:131;22671:18;22761:131;;22909:407;23100:2;23114:47;;;23085:18;;23175:131;23085:18;23175:131;;23323:407;23514:2;23528:47;;;23499:18;;23589:131;23499:18;23589:131;;23737:407;23928:2;23942:47;;;23913:18;;24003:131;23913:18;24003:131;;24151:407;24342:2;24356:47;;;24327:18;;24417:131;24327:18;24417:131;;24565:407;24756:2;24770:47;;;24741:18;;24831:131;24741:18;24831:131;;24979:407;25170:2;25184:47;;;25155:18;;25245:131;25155:18;25245:131;;25393:256;25455:2;25449:9;25481:17;;;25556:18;25541:34;;25577:22;;;25538:62;25535:2;;;25613:1;25610;25603:12;25535:2;25629;25622:22;25433:216;;-1:-1;25433:216;25656:263;;25820:18;25812:6;25809:30;25806:2;;;25852:1;25849;25842:12;25806:2;-1:-1;25881:4;25869:17;;;25899:15;;25743:176;26755:254;;26894:18;26886:6;26883:30;26880:2;;;26926:1;26923;26916:12;26880:2;-1:-1;26999:4;26970;26947:17;;;;26966:9;26943:33;26989:15;;26817:192;27281:105;;27350:31;27375:5;27350:31;;27393:79;27462:5;27445:27;27479:128;27559:42;27548:54;;27531:76;27899:145;27980:6;27975:3;27970;27957:30;-1:-1;28036:1;28018:16;;28011:27;27950:94;28053:268;28118:1;28125:101;28139:6;28136:1;28133:13;28125:101;;;28206:11;;;28200:18;28187:11;;;28180:39;28161:2;28154:10;28125:101;;;28241:6;28238:1;28235:13;28232:2;;;28306:1;28297:6;28292:3;28288:16;28281:27;28232:2;28102:219;;;;" + } + } + }, + "sources": { + "test/TestMixins.sol": { + "id": 14 + }, + "src/MixinSignatureValidator.sol": { + "id": 0 + }, + "@0x/contracts-utils/contracts/src/LibBytes.sol": { + "id": 19 + }, + "src/mixins/MSignatureValidator.sol": { + "id": 12 + }, + "src/interfaces/ISignatureValidator.sol": { + "id": 4 + }, + "src/MixinTECApprovalVerifier.sol": { + "id": 1 + }, + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { + "id": 16 + }, + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { + "id": 17 + }, + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { + "id": 15 + }, + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { + "id": 18 + }, + "src/libs/LibTECApproval.sol": { + "id": 10 + }, + "src/libs/LibEIP712Domain.sol": { + "id": 9 + }, + "src/libs/LibZeroExTransaction.sol": { + "id": 11 + }, + "src/mixins/MTECApprovalVerifier.sol": { + "id": 13 + }, + "src/interfaces/ITECApprovalVerifier.sol": { + "id": 5 + } + }, + "sourceCodes": { + "test/TestMixins.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../src/MixinSignatureValidator.sol\";\nimport \"../src/MixinTECApprovalVerifier.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract TestMixins is\n MixinSignatureValidator,\n MixinTECApprovalVerifier\n{}\n", + "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", + "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", + "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", + "src/MixinTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibTECApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinTECApprovalVerifier is\n LibExchangeSelectors,\n LibTECApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MTECApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i < signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n TECApproval memory approval = TECApproval({\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getTECApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i < ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n address approverAddress = orders[i].feeRecipientAddress;\n if (approverAddress == tx.origin) {\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n\n // The Ethereum transaction signer must be the 0x transaction signer or an approver of the 0x transaction\n require(\n transaction.signerAddress == tx.origin || approvalSignerAddresses.contains(tx.origin),\n \"INVALID_SENDER\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return true;\n }\n }\n return false;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool, uint256)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return (true, i);\n }\n }\n return (false, 0);\n }\n}\n", + "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/mixins/MTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ITECApprovalVerifier.sol\";\n\n\ncontract MTECApprovalVerifier is\n ITECApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", + "src/interfaces/ITECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n" + }, + "sourceTreeHashHex": "0x80e5c5d9f07cb233e9bb5306b6e8537da3b45a523553bdd1d1a1b2209a63c30c", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "remappings": [ + "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} \ No newline at end of file diff --git a/contracts/tec/generated-wrappers/tec.ts b/contracts/tec/generated-wrappers/tec.ts new file mode 100644 index 0000000000..86d0fa40d5 --- /dev/null +++ b/contracts/tec/generated-wrappers/tec.ts @@ -0,0 +1,302 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name +// tslint:disable:no-unused-variable +// tslint:disable:no-unbound-method +import { BaseContract } from '@0x/base-contract'; +import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; +import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import * as ethers from 'ethers'; +import * as _ from 'lodash'; +// tslint:enable:no-unused-variable + + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class TECContract extends BaseContract { + public getSignerAddress = { + async callAsync( + hash: string, + signature: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TECContract; + const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, + signature + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('getSignerAddress(bytes32,bytes)'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public assertValidTransactionOrdersApproval = { + async callAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TECContract; + const encodedData = self._strictEncodeArguments('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])', [transaction, + orders, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public assertValidTECApprovals = { + async callAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TECContract; + const encodedData = self._strictEncodeArguments('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public EIP712_DOMAIN_HASH = { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TECContract; + const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public executeTransaction = { + async sendTransactionAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + txData: Partial = {}, + ): Promise { + const self = this as any as TECContract; + const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + self.executeTransaction.estimateGasAsync.bind( + self, + transaction, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ), + ); + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); + return txHash; + }, + async estimateGasAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + txData: Partial = {}, + ): Promise { + const self = this as any as TECContract; + const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); + return gas; + }, + getABIEncodedTransactionData( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + ): string { + const self = this as any as TECContract; + const abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + return abiEncodedTransactionData; + }, + async callAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TECContract; + const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + supportedProvider: SupportedProvider, + txDefaults: Partial, + _exchange: string, + ): Promise { + if (_.isUndefined(artifact.compilerOutput)) { + throw new Error('Compiler output not found in the artifact file'); + } + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return TECContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange +); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + supportedProvider: SupportedProvider, + txDefaults: Partial, + _exchange: string, + ): Promise { + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [_exchange +] = BaseContract._formatABIDataItemList( + constructorAbi.inputs, + [_exchange +], + BaseContract._bigNumberToString, + ); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, [_exchange +]); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + {data: txData}, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`TEC successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new TECContract(abi, txReceipt.contractAddress as string, provider, txDefaults); + contractInstance.constructorArgs = [_exchange +]; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { + super('TEC', abi, address, supportedProvider, txDefaults); + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method diff --git a/contracts/tec/generated-wrappers/test_libs.ts b/contracts/tec/generated-wrappers/test_libs.ts new file mode 100644 index 0000000000..18dac711e6 --- /dev/null +++ b/contracts/tec/generated-wrappers/test_libs.ts @@ -0,0 +1,148 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name +// tslint:disable:no-unused-variable +// tslint:disable:no-unbound-method +import { BaseContract } from '@0x/base-contract'; +import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; +import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import * as ethers from 'ethers'; +import * as _ from 'lodash'; +// tslint:enable:no-unused-variable + + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class TestLibsContract extends BaseContract { + public publicGetTransactionHash = { + async callAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TestLibsContract; + const encodedData = self._strictEncodeArguments('publicGetTransactionHash((uint256,address,bytes))', [transaction + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('publicGetTransactionHash((uint256,address,bytes))'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public publicGetTECApprovalHash = { + async callAsync( + approval: {transactionHash: string;transactionSignature: string;approvalExpirationTimeSeconds: BigNumber}, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TestLibsContract; + const encodedData = self._strictEncodeArguments('publicGetTECApprovalHash((bytes32,bytes,uint256))', [approval + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('publicGetTECApprovalHash((bytes32,bytes,uint256))'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public EIP712_DOMAIN_HASH = { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TestLibsContract; + const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + if (_.isUndefined(artifact.compilerOutput)) { + throw new Error('Compiler output not found in the artifact file'); + } + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return TestLibsContract.deployAsync(bytecode, abi, provider, txDefaults, ); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [] = BaseContract._formatABIDataItemList( + constructorAbi.inputs, + [], + BaseContract._bigNumberToString, + ); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, []); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + {data: txData}, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`TestLibs successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new TestLibsContract(abi, txReceipt.contractAddress as string, provider, txDefaults); + contractInstance.constructorArgs = []; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { + super('TestLibs', abi, address, supportedProvider, txDefaults); + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method diff --git a/contracts/tec/generated-wrappers/test_mixins.ts b/contracts/tec/generated-wrappers/test_mixins.ts new file mode 100644 index 0000000000..6c3c1eacfc --- /dev/null +++ b/contracts/tec/generated-wrappers/test_mixins.ts @@ -0,0 +1,192 @@ +// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name +// tslint:disable:no-unused-variable +// tslint:disable:no-unbound-method +import { BaseContract } from '@0x/base-contract'; +import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; +import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; +import { SimpleContractArtifact } from '@0x/types'; +import { Web3Wrapper } from '@0x/web3-wrapper'; +import * as ethers from 'ethers'; +import * as _ from 'lodash'; +// tslint:enable:no-unused-variable + + +/* istanbul ignore next */ +// tslint:disable:no-parameter-reassignment +// tslint:disable-next-line:class-name +export class TestMixinsContract extends BaseContract { + public getSignerAddress = { + async callAsync( + hash: string, + signature: string, + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TestMixinsContract; + const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, + signature + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('getSignerAddress(bytes32,bytes)'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public assertValidTransactionOrdersApproval = { + async callAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TestMixinsContract; + const encodedData = self._strictEncodeArguments('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])', [transaction, + orders, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public assertValidTECApprovals = { + async callAsync( + transaction: {salt: BigNumber;signerAddress: string;data: string}, + transactionSignature: string, + approvalExpirationTimeSeconds: BigNumber[], + approvalSignatures: string[], + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TestMixinsContract; + const encodedData = self._strictEncodeArguments('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, + transactionSignature, + approvalExpirationTimeSeconds, + approvalSignatures + ]); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public EIP712_DOMAIN_HASH = { + async callAsync( + callData: Partial = {}, + defaultBlock?: BlockParam, + ): Promise { + const self = this as any as TestMixinsContract; + const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); + const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...callData, + data: encodedData, + }, + self._web3Wrapper.getContractDefaults(), + ); + const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); + BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); + const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); + // tslint:disable boolean-naming + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + // tslint:enable boolean-naming + return result; + }, + }; + public static async deployFrom0xArtifactAsync( + artifact: ContractArtifact | SimpleContractArtifact, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + if (_.isUndefined(artifact.compilerOutput)) { + throw new Error('Compiler output not found in the artifact file'); + } + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const bytecode = artifact.compilerOutput.evm.bytecode.object; + const abi = artifact.compilerOutput.abi; + return TestMixinsContract.deployAsync(bytecode, abi, provider, txDefaults, ); + } + public static async deployAsync( + bytecode: string, + abi: ContractAbi, + supportedProvider: SupportedProvider, + txDefaults: Partial, + ): Promise { + const provider = providerUtils.standardizeOrThrow(supportedProvider); + const constructorAbi = BaseContract._lookupConstructorAbi(abi); + [] = BaseContract._formatABIDataItemList( + constructorAbi.inputs, + [], + BaseContract._bigNumberToString, + ); + const iface = new ethers.utils.Interface(abi); + const deployInfo = iface.deployFunction; + const txData = deployInfo.encode(bytecode, []); + const web3Wrapper = new Web3Wrapper(provider); + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + {data: txData}, + txDefaults, + web3Wrapper.estimateGasAsync.bind(web3Wrapper), + ); + const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); + logUtils.log(`transactionHash: ${txHash}`); + const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); + logUtils.log(`TestMixins successfully deployed at ${txReceipt.contractAddress}`); + const contractInstance = new TestMixinsContract(abi, txReceipt.contractAddress as string, provider, txDefaults); + contractInstance.constructorArgs = []; + return contractInstance; + } + constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { + super('TestMixins', abi, address, supportedProvider, txDefaults); + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); + } +} // tslint:disable:max-file-line-count +// tslint:enable:no-unbound-method diff --git a/contracts/test-utils/CHANGELOG.json b/contracts/test-utils/CHANGELOG.json index c85059a13b..0c589a9317 100644 --- a/contracts/test-utils/CHANGELOG.json +++ b/contracts/test-utils/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Added ERC1155Proxy test constants and interfaces", "pr": 1661 } - ] + ], + "timestamp": 1553091633 }, { "version": "3.0.9", diff --git a/contracts/test-utils/CHANGELOG.md b/contracts/test-utils/CHANGELOG.md index 0d151d19d5..7f2ac4902e 100644 --- a/contracts/test-utils/CHANGELOG.md +++ b/contracts/test-utils/CHANGELOG.md @@ -5,6 +5,15 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.1.0 - _March 20, 2019_ + + * Added ERC1155Proxy test constants and interfaces (#1661) + +## v3.0.9 - _Invalid date_ + + * Set evmVersion to byzantium (#1678) + * Remove Coordinator EIP712 constants. They're now in the `order-utils` package. (#1705) + ## v3.0.8 - _March 1, 2019_ * Dependencies updated diff --git a/contracts/utils/CHANGELOG.json b/contracts/utils/CHANGELOG.json index ecec7db642..10ab71607f 100644 --- a/contracts/utils/CHANGELOG.json +++ b/contracts/utils/CHANGELOG.json @@ -14,7 +14,8 @@ "note": "Added Address.sol with test for whether or not an address is a contract", "pr": 1657 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/contracts/utils/CHANGELOG.md b/contracts/utils/CHANGELOG.md index d1556986c9..848f1c6e75 100644 --- a/contracts/utils/CHANGELOG.md +++ b/contracts/utils/CHANGELOG.md @@ -5,6 +5,12 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.0.0 - _March 20, 2019_ + + * Optimize loops in LibAddressArray (#1668) + * Upgrade contracts to Solidity 0.5.5 (#1682) + * Added Address.sol with test for whether or not an address is a contract (#1657) + ## v2.0.8 - _March 1, 2019_ * Dependencies updated diff --git a/packages/0x.js/CHANGELOG.json b/packages/0x.js/CHANGELOG.json index 2ac597db78..b52c16fb95 100644 --- a/packages/0x.js/CHANGELOG.json +++ b/packages/0x.js/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "6.0.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "6.0.3", diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md index 85a6625b5a..25e6d74031 100644 --- a/packages/0x.js/CHANGELOG.md +++ b/packages/0x.js/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v6.0.4 - _March 20, 2019_ + + * Dependencies updated + ## v6.0.3 - _March 1, 2019_ * Dependencies updated diff --git a/packages/abi-gen-wrappers/CHANGELOG.json b/packages/abi-gen-wrappers/CHANGELOG.json index 39fb9974f9..a6980ed00a 100644 --- a/packages/abi-gen-wrappers/CHANGELOG.json +++ b/packages/abi-gen-wrappers/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "4.0.3", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "4.0.2", diff --git a/packages/abi-gen-wrappers/CHANGELOG.md b/packages/abi-gen-wrappers/CHANGELOG.md index 3c6388d262..5ddd798e2a 100644 --- a/packages/abi-gen-wrappers/CHANGELOG.md +++ b/packages/abi-gen-wrappers/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.0.3 - _March 20, 2019_ + + * Dependencies updated + ## v4.0.2 - _March 1, 2019_ * Dependencies updated diff --git a/packages/abi-gen/CHANGELOG.json b/packages/abi-gen/CHANGELOG.json index b8949d3ad7..a4a036c905 100644 --- a/packages/abi-gen/CHANGELOG.json +++ b/packages/abi-gen/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "2.0.7", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "2.0.6", diff --git a/packages/abi-gen/CHANGELOG.md b/packages/abi-gen/CHANGELOG.md index b836ef9468..eceb62a1dd 100644 --- a/packages/abi-gen/CHANGELOG.md +++ b/packages/abi-gen/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.7 - _March 20, 2019_ + + * Dependencies updated + ## v2.0.6 - _March 1, 2019_ * Dependencies updated diff --git a/packages/assert/CHANGELOG.json b/packages/assert/CHANGELOG.json index 8eea149d0f..c408999e02 100644 --- a/packages/assert/CHANGELOG.json +++ b/packages/assert/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "2.0.7", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "2.0.6", diff --git a/packages/assert/CHANGELOG.md b/packages/assert/CHANGELOG.md index 6e1ec5464a..beabf7f3bb 100644 --- a/packages/assert/CHANGELOG.md +++ b/packages/assert/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.7 - _March 20, 2019_ + + * Dependencies updated + ## v2.0.6 - _March 1, 2019_ * Dependencies updated diff --git a/packages/asset-buyer/CHANGELOG.json b/packages/asset-buyer/CHANGELOG.json index 851b403d32..a840f60036 100644 --- a/packages/asset-buyer/CHANGELOG.json +++ b/packages/asset-buyer/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "6.0.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "6.0.3", diff --git a/packages/asset-buyer/CHANGELOG.md b/packages/asset-buyer/CHANGELOG.md index b5a77e06cd..eb4bee74bf 100644 --- a/packages/asset-buyer/CHANGELOG.md +++ b/packages/asset-buyer/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v6.0.4 - _March 20, 2019_ + + * Dependencies updated + ## v6.0.3 - _March 1, 2019_ * Dependencies updated diff --git a/packages/base-contract/CHANGELOG.json b/packages/base-contract/CHANGELOG.json index f68ebe468d..d10e0d9519 100644 --- a/packages/base-contract/CHANGELOG.json +++ b/packages/base-contract/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "5.0.3", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "5.0.2", diff --git a/packages/base-contract/CHANGELOG.md b/packages/base-contract/CHANGELOG.md index c14de75851..13ebba498d 100644 --- a/packages/base-contract/CHANGELOG.md +++ b/packages/base-contract/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v5.0.3 - _March 20, 2019_ + + * Dependencies updated + ## v5.0.2 - _March 1, 2019_ * Dependencies updated diff --git a/packages/connect/CHANGELOG.json b/packages/connect/CHANGELOG.json index ca1104000a..92f662103e 100644 --- a/packages/connect/CHANGELOG.json +++ b/packages/connect/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Update websocket@^1.0.25 -> websocket@^1.0.26", "pr": 1685 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/packages/connect/CHANGELOG.md b/packages/connect/CHANGELOG.md index f34c5cc73d..3f1deba8b6 100644 --- a/packages/connect/CHANGELOG.md +++ b/packages/connect/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v5.0.3 - _March 20, 2019_ + + * Update websocket@^1.0.25 -> websocket@^1.0.26 (#1685) + ## v5.0.2 - _March 1, 2019_ * Dependencies updated diff --git a/packages/contract-addresses/CHANGELOG.json b/packages/contract-addresses/CHANGELOG.json index b3e9a79a63..e9ed846fc7 100644 --- a/packages/contract-addresses/CHANGELOG.json +++ b/packages/contract-addresses/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Added Dutch Auction mainnet address", "pr": 1715 } - ] + ], + "timestamp": 1553091633 }, { "version": "2.2.2", diff --git a/packages/contract-addresses/CHANGELOG.md b/packages/contract-addresses/CHANGELOG.md index f625d56d81..718c7276ab 100644 --- a/packages/contract-addresses/CHANGELOG.md +++ b/packages/contract-addresses/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.2.3 - _March 20, 2019_ + + * Added Dutch Auction mainnet address (#1715) + ## v2.2.2 - _February 25, 2019_ * Fixed Ganache addresses for OrderValidator & Forwarder diff --git a/packages/contract-wrappers/CHANGELOG.json b/packages/contract-wrappers/CHANGELOG.json index bc6a91d54c..0c2c414adb 100644 --- a/packages/contract-wrappers/CHANGELOG.json +++ b/packages/contract-wrappers/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "8.0.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "8.0.3", "changes": [ diff --git a/packages/contract-wrappers/CHANGELOG.md b/packages/contract-wrappers/CHANGELOG.md index 470d7ef585..32c1e28661 100644 --- a/packages/contract-wrappers/CHANGELOG.md +++ b/packages/contract-wrappers/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v8.0.4 - _March 20, 2019_ + + * Dependencies updated + ## v8.0.3 - _March 1, 2019_ * Move contracts-test-utils and fill-scenarios to dev dependency (#1657) diff --git a/packages/contracts-gen/CHANGELOG.json b/packages/contracts-gen/CHANGELOG.json index 8ad064b284..f059d7a3fd 100644 --- a/packages/contracts-gen/CHANGELOG.json +++ b/packages/contracts-gen/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "1.0.6", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "1.0.5", diff --git a/packages/contracts-gen/CHANGELOG.md b/packages/contracts-gen/CHANGELOG.md index dd73ea9846..59dd19eeb6 100644 --- a/packages/contracts-gen/CHANGELOG.md +++ b/packages/contracts-gen/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v1.0.6 - _March 20, 2019_ + + * Dependencies updated + ## v1.0.5 - _March 1, 2019_ * Dependencies updated diff --git a/packages/dev-utils/CHANGELOG.json b/packages/dev-utils/CHANGELOG.json index 592f188ac9..c818a19bcd 100644 --- a/packages/dev-utils/CHANGELOG.json +++ b/packages/dev-utils/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "2.1.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "2.1.3", diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index d8f17c25bd..b0f6318abf 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.1.4 - _March 20, 2019_ + + * Dependencies updated + ## v2.1.3 - _March 1, 2019_ * Dependencies updated diff --git a/packages/ethereum-types/CHANGELOG.json b/packages/ethereum-types/CHANGELOG.json index 29a47c17eb..5654d582c8 100644 --- a/packages/ethereum-types/CHANGELOG.json +++ b/packages/ethereum-types/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "2.1.1", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "2.1.0", "changes": [ diff --git a/packages/ethereum-types/CHANGELOG.md b/packages/ethereum-types/CHANGELOG.md index 094800c005..72b4041d36 100644 --- a/packages/ethereum-types/CHANGELOG.md +++ b/packages/ethereum-types/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.1.1 - _March 20, 2019_ + + * Dependencies updated + ## v2.1.0 - _February 25, 2019_ * Added types SupportedProvider, GanacheProvider, Web3JsProvider, ZeroExProvider, EIP1193Provider (#1627) diff --git a/packages/fill-scenarios/CHANGELOG.json b/packages/fill-scenarios/CHANGELOG.json index 7a6b5b62fb..979f143653 100644 --- a/packages/fill-scenarios/CHANGELOG.json +++ b/packages/fill-scenarios/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "3.0.3", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "3.0.2", diff --git a/packages/fill-scenarios/CHANGELOG.md b/packages/fill-scenarios/CHANGELOG.md index 81d41a5927..17f50658a9 100644 --- a/packages/fill-scenarios/CHANGELOG.md +++ b/packages/fill-scenarios/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.0.3 - _March 20, 2019_ + + * Dependencies updated + ## v3.0.2 - _March 1, 2019_ * Dependencies updated diff --git a/packages/json-schemas/CHANGELOG.json b/packages/json-schemas/CHANGELOG.json index 69966eac8b..376e6432be 100644 --- a/packages/json-schemas/CHANGELOG.json +++ b/packages/json-schemas/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "3.0.7", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "3.0.6", diff --git a/packages/json-schemas/CHANGELOG.md b/packages/json-schemas/CHANGELOG.md index ba06e2cbe3..ac04a0bf04 100644 --- a/packages/json-schemas/CHANGELOG.md +++ b/packages/json-schemas/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.0.7 - _March 20, 2019_ + + * Dependencies updated + ## v3.0.6 - _March 1, 2019_ * Dependencies updated diff --git a/packages/migrations/CHANGELOG.json b/packages/migrations/CHANGELOG.json index c8a03e0d0a..e555ad5788 100644 --- a/packages/migrations/CHANGELOG.json +++ b/packages/migrations/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "4.0.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "4.0.3", diff --git a/packages/migrations/CHANGELOG.md b/packages/migrations/CHANGELOG.md index c17e119af8..64337fae5d 100644 --- a/packages/migrations/CHANGELOG.md +++ b/packages/migrations/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.0.4 - _March 20, 2019_ + + * Dependencies updated + ## v4.0.3 - _March 1, 2019_ * Dependencies updated diff --git a/packages/order-utils/CHANGELOG.json b/packages/order-utils/CHANGELOG.json index 62f4284359..587b633ce0 100644 --- a/packages/order-utils/CHANGELOG.json +++ b/packages/order-utils/CHANGELOG.json @@ -10,7 +10,8 @@ "note": "Added encoding/decoding fdor ERC1155 asset data", "pr": 1661 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/packages/order-utils/CHANGELOG.md b/packages/order-utils/CHANGELOG.md index 135318a1fa..e999ab3b27 100644 --- a/packages/order-utils/CHANGELOG.md +++ b/packages/order-utils/CHANGELOG.md @@ -5,6 +5,11 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v7.1.0 - _March 20, 2019_ + + * Add Coordinator EIP712 constants (#1705) + * Added encoding/decoding fdor ERC1155 asset data (#1661) + ## v7.0.2 - _March 1, 2019_ * Dependencies updated diff --git a/packages/order-watcher/CHANGELOG.json b/packages/order-watcher/CHANGELOG.json index 4e0015bce4..51b253d72b 100644 --- a/packages/order-watcher/CHANGELOG.json +++ b/packages/order-watcher/CHANGELOG.json @@ -14,7 +14,8 @@ "note": "Fix race-condition bugs due to async event callbacks modifying shared state", "pr": 1718 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/packages/order-watcher/CHANGELOG.md b/packages/order-watcher/CHANGELOG.md index dbe67523b3..e479946902 100644 --- a/packages/order-watcher/CHANGELOG.md +++ b/packages/order-watcher/CHANGELOG.md @@ -5,6 +5,12 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.0.4 - _March 20, 2019_ + + * Update websocket from ^1.0.25 to ^1.0.26 (#1685) + * Fix issue where ERC721 Approval events could cause a lookup on undefined object (#1692) + * Fix race-condition bugs due to async event callbacks modifying shared state (#1718) + ## v4.0.3 - _March 1, 2019_ * Dependencies updated diff --git a/packages/react-docs/CHANGELOG.json b/packages/react-docs/CHANGELOG.json index 12045b47c6..606d0a8df9 100644 --- a/packages/react-docs/CHANGELOG.json +++ b/packages/react-docs/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "2.0.8", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "2.0.7", diff --git a/packages/react-docs/CHANGELOG.md b/packages/react-docs/CHANGELOG.md index f00431ff59..c4c47971c7 100644 --- a/packages/react-docs/CHANGELOG.md +++ b/packages/react-docs/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.8 - _March 20, 2019_ + + * Dependencies updated + ## v2.0.7 - _March 1, 2019_ * Dependencies updated diff --git a/packages/react-shared/CHANGELOG.json b/packages/react-shared/CHANGELOG.json index 0a040d8dce..190cbfdbe9 100644 --- a/packages/react-shared/CHANGELOG.json +++ b/packages/react-shared/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "2.0.8", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "2.0.7", diff --git a/packages/react-shared/CHANGELOG.md b/packages/react-shared/CHANGELOG.md index d9353b9480..8b94c98d2a 100644 --- a/packages/react-shared/CHANGELOG.md +++ b/packages/react-shared/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.8 - _March 20, 2019_ + + * Dependencies updated + ## v2.0.7 - _March 1, 2019_ * Dependencies updated diff --git a/packages/sol-compiler/CHANGELOG.json b/packages/sol-compiler/CHANGELOG.json index c52071e09b..54ea20a21f 100644 --- a/packages/sol-compiler/CHANGELOG.json +++ b/packages/sol-compiler/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "3.1.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "3.1.3", diff --git a/packages/sol-compiler/CHANGELOG.md b/packages/sol-compiler/CHANGELOG.md index e5a76e2e01..8641b5b728 100644 --- a/packages/sol-compiler/CHANGELOG.md +++ b/packages/sol-compiler/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.1.4 - _March 20, 2019_ + + * Dependencies updated + ## v3.1.3 - _March 1, 2019_ * Dependencies updated diff --git a/packages/sol-coverage/CHANGELOG.json b/packages/sol-coverage/CHANGELOG.json index 7b32c7b798..68307197be 100644 --- a/packages/sol-coverage/CHANGELOG.json +++ b/packages/sol-coverage/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "3.0.1", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "3.0.0", "changes": [ diff --git a/packages/sol-coverage/CHANGELOG.md b/packages/sol-coverage/CHANGELOG.md index 4b413562a0..332bdba875 100644 --- a/packages/sol-coverage/CHANGELOG.md +++ b/packages/sol-coverage/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.0.1 - _March 20, 2019_ + + * Dependencies updated + ## v3.0.0 - _March 1, 2019_ * Change the interface to accept a configuration object instead of `isVerbose` (#1656) diff --git a/packages/sol-doc/CHANGELOG.json b/packages/sol-doc/CHANGELOG.json index 35dff4b396..9e20d5dbbd 100644 --- a/packages/sol-doc/CHANGELOG.json +++ b/packages/sol-doc/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "2.0.8", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "2.0.7", diff --git a/packages/sol-doc/CHANGELOG.md b/packages/sol-doc/CHANGELOG.md index c5134c2a2c..c353d8e8c9 100644 --- a/packages/sol-doc/CHANGELOG.md +++ b/packages/sol-doc/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.8 - _March 20, 2019_ + + * Dependencies updated + ## v2.0.7 - _March 1, 2019_ * Dependencies updated diff --git a/packages/sol-profiler/CHANGELOG.json b/packages/sol-profiler/CHANGELOG.json index bca92bb205..30b6b1e437 100644 --- a/packages/sol-profiler/CHANGELOG.json +++ b/packages/sol-profiler/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "3.1.3", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "3.1.2", "changes": [ diff --git a/packages/sol-profiler/CHANGELOG.md b/packages/sol-profiler/CHANGELOG.md index 2823333d0f..9f9e646ab8 100644 --- a/packages/sol-profiler/CHANGELOG.md +++ b/packages/sol-profiler/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.1.3 - _March 20, 2019_ + + * Dependencies updated + ## v3.1.2 - _March 1, 2019_ * Bug fixes related to stack parameters parsing (#1663) diff --git a/packages/sol-resolver/CHANGELOG.json b/packages/sol-resolver/CHANGELOG.json index afe307da9f..51a2d37b7e 100644 --- a/packages/sol-resolver/CHANGELOG.json +++ b/packages/sol-resolver/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "2.0.5", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551220833, "version": "2.0.4", diff --git a/packages/sol-resolver/CHANGELOG.md b/packages/sol-resolver/CHANGELOG.md index e76beb1c4a..3e6ce82c0d 100644 --- a/packages/sol-resolver/CHANGELOG.md +++ b/packages/sol-resolver/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.5 - _March 20, 2019_ + + * Dependencies updated + ## v2.0.4 - _February 26, 2019_ * Dependencies updated diff --git a/packages/sol-trace/CHANGELOG.json b/packages/sol-trace/CHANGELOG.json index 51c85a6bc9..ba27205866 100644 --- a/packages/sol-trace/CHANGELOG.json +++ b/packages/sol-trace/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "2.0.9", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "2.0.8", diff --git a/packages/sol-trace/CHANGELOG.md b/packages/sol-trace/CHANGELOG.md index 4646da66b9..2c10776823 100644 --- a/packages/sol-trace/CHANGELOG.md +++ b/packages/sol-trace/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.9 - _March 20, 2019_ + + * Dependencies updated + ## v2.0.8 - _March 1, 2019_ * Dependencies updated diff --git a/packages/sol-tracing-utils/CHANGELOG.json b/packages/sol-tracing-utils/CHANGELOG.json index ef6013414c..8506ad7b3a 100644 --- a/packages/sol-tracing-utils/CHANGELOG.json +++ b/packages/sol-tracing-utils/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Update solidity-parser-antlr to 0.4.2", "pr": 1719 } - ] + ], + "timestamp": 1553091633 }, { "version": "6.0.7", diff --git a/packages/sol-tracing-utils/CHANGELOG.md b/packages/sol-tracing-utils/CHANGELOG.md index 5bb0a59a6b..546ac8064c 100644 --- a/packages/sol-tracing-utils/CHANGELOG.md +++ b/packages/sol-tracing-utils/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v6.0.8 - _March 20, 2019_ + + * Update solidity-parser-antlr to 0.4.2 (#1719) + ## v6.0.7 - _March 1, 2019_ * Fix a bug when `TruffleArtifactAdapter` wasn't correctly parsing solc config in pre-5.0 versions of Truffle (#1663) diff --git a/packages/sra-spec/CHANGELOG.json b/packages/sra-spec/CHANGELOG.json index 0ec77d9c73..2dc9fad8b4 100644 --- a/packages/sra-spec/CHANGELOG.json +++ b/packages/sra-spec/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "2.0.7", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1551479279, "version": "2.0.6", diff --git a/packages/sra-spec/CHANGELOG.md b/packages/sra-spec/CHANGELOG.md index b5f15f377f..3f9c2c94a4 100644 --- a/packages/sra-spec/CHANGELOG.md +++ b/packages/sra-spec/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.7 - _March 20, 2019_ + + * Dependencies updated + ## v2.0.6 - _March 1, 2019_ * Dependencies updated diff --git a/packages/subproviders/CHANGELOG.json b/packages/subproviders/CHANGELOG.json index 7851c865f0..914fa07a4d 100644 --- a/packages/subproviders/CHANGELOG.json +++ b/packages/subproviders/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Update ganache-core to 2.5.3", "pr": 1707 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/packages/subproviders/CHANGELOG.md b/packages/subproviders/CHANGELOG.md index 990a82ba70..8b35b013c9 100644 --- a/packages/subproviders/CHANGELOG.md +++ b/packages/subproviders/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.0.3 - _March 20, 2019_ + + * Update ganache-core to 2.5.3 (#1707) + ## v4.0.2 - _March 1, 2019_ * Dependencies updated diff --git a/packages/types/CHANGELOG.json b/packages/types/CHANGELOG.json index daa51e24ca..225bf426e8 100644 --- a/packages/types/CHANGELOG.json +++ b/packages/types/CHANGELOG.json @@ -18,7 +18,8 @@ "note": "Add `RevertReason.SignatureInvalid` thrown by Coordinator", "pr": 1705 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551220833, diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 519bc98a30..05fdd2e990 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -5,6 +5,13 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.2.0 - _March 20, 2019_ + + * Added ERC1155 revert reasons (#1657) + * Added `ERC1155AssetData`, `ERC1155AssetDataNoProxyId`, and `ERC1155AssetDataAbi` (#1661) + * Add `InvalidOrigin` revert reason (#1668) + * Add `RevertReason.SignatureInvalid` thrown by Coordinator (#1705) + ## v2.1.1 - _February 26, 2019_ * Dependencies updated diff --git a/packages/typescript-typings/CHANGELOG.json b/packages/typescript-typings/CHANGELOG.json index 1f6372aab5..5d28379dc1 100644 --- a/packages/typescript-typings/CHANGELOG.json +++ b/packages/typescript-typings/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Add optional types to optimizer settings", "pr": 1682 } - ] + ], + "timestamp": 1553091633 }, { "version": "4.1.0", diff --git a/packages/typescript-typings/CHANGELOG.md b/packages/typescript-typings/CHANGELOG.md index 001fee2c12..fc23c8f99c 100644 --- a/packages/typescript-typings/CHANGELOG.md +++ b/packages/typescript-typings/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.2.0 - _March 20, 2019_ + + * Add optional types to optimizer settings (#1682) + ## v4.1.0 - _February 25, 2019_ * Add back custom web3-provider-engine type definitions (#1627) diff --git a/packages/utils/CHANGELOG.json b/packages/utils/CHANGELOG.json index b81728b822..58c0118353 100644 --- a/packages/utils/CHANGELOG.json +++ b/packages/utils/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553091633, + "version": "4.2.3", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "4.2.2", "changes": [ diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 33aaa324a6..2572e54724 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.2.3 - _March 20, 2019_ + + * Dependencies updated + ## v4.2.2 - _March 1, 2019_ * Fix issue where process is not defined in browser context (#1660) diff --git a/packages/web3-wrapper/CHANGELOG.json b/packages/web3-wrapper/CHANGELOG.json index 216e058d70..e99107bf86 100644 --- a/packages/web3-wrapper/CHANGELOG.json +++ b/packages/web3-wrapper/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Update ganache-core to 2.5.3", "pr": 1707 } - ] + ], + "timestamp": 1553091633 }, { "timestamp": 1551479279, diff --git a/packages/web3-wrapper/CHANGELOG.md b/packages/web3-wrapper/CHANGELOG.md index 8f0478c35a..3d0c53f555 100644 --- a/packages/web3-wrapper/CHANGELOG.md +++ b/packages/web3-wrapper/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v6.0.3 - _March 20, 2019_ + + * Update ganache-core to 2.5.3 (#1707) + ## v6.0.2 - _March 1, 2019_ * Dependencies updated From d4c37ecfa3be19f5df560694d14d8c0161f41dc4 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Wed, 20 Mar 2019 15:26:54 +0100 Subject: [PATCH 57/95] Publish - 0x.js@6.0.4 - @0x/abi-gen@2.0.7 - @0x/abi-gen-wrappers@4.0.3 - @0x/assert@2.0.7 - @0x/asset-buyer@6.0.4 - @0x/base-contract@5.0.3 - @0x/connect@5.0.3 - @0x/contract-addresses@2.2.3 - @0x/contract-wrappers@8.0.4 - @0x/contracts-gen@1.0.6 - @0x/dev-tools-pages@0.0.23 - @0x/dev-utils@2.1.4 - ethereum-types@2.1.1 - @0x/fill-scenarios@3.0.3 - @0x/instant@1.0.18 - @0x/json-schemas@3.0.7 - @0x/metacoin@0.0.45 - @0x/migrations@4.0.4 - @0x/monorepo-scripts@1.0.28 - @0x/order-utils@7.1.0 - @0x/order-watcher@4.0.4 - @0x/pipeline@1.0.15 - @0x/react-docs@2.0.8 - @0x/react-shared@2.0.8 - @0x/sol-compiler@3.1.4 - @0x/sol-coverage@3.0.1 - @0x/sol-doc@2.0.8 - @0x/sol-profiler@3.1.3 - @0x/sol-resolver@2.0.5 - @0x/sol-trace@2.0.9 - @0x/sol-tracing-utils@6.0.8 - @0x/sra-spec@2.0.7 - @0x/subproviders@4.0.3 - @0x/testnet-faucets@1.0.74 - @0x/types@2.2.0 - @0x/typescript-typings@4.2.0 - @0x/utils@4.2.3 - @0x/web3-wrapper@6.0.3 - @0x/website@0.0.77 - @0x/contracts-asset-proxy@2.0.0 - @0x/contracts-coordinator@1.0.0 - @0x/contracts-erc1155@1.0.1 - @0x/contracts-erc20@2.0.0 - @0x/contracts-erc721@2.0.0 - @0x/contracts-exchange@2.0.0 - @0x/contracts-exchange-forwarder@2.0.0 - @0x/contracts-exchange-libs@2.0.0 - @0x/contracts-extensions@3.0.0 - @0x/contracts-multisig@3.0.0 - @0x/contracts-test-utils@3.1.0 - @0x/contracts-utils@3.0.0 --- contracts/asset-proxy/package.json | 34 +++++++++---------- contracts/coordinator/package.json | 34 +++++++++---------- contracts/erc1155/package.json | 26 +++++++-------- contracts/erc20/package.json | 28 ++++++++-------- contracts/erc721/package.json | 26 +++++++-------- contracts/exchange-forwarder/package.json | 30 ++++++++--------- contracts/exchange-libs/package.json | 28 ++++++++-------- contracts/exchange/package.json | 38 ++++++++++----------- contracts/extensions/package.json | 40 +++++++++++------------ contracts/multisig/package.json | 28 ++++++++-------- contracts/test-utils/package.json | 28 ++++++++-------- contracts/utils/package.json | 26 +++++++-------- packages/0x.js/package.json | 32 +++++++++--------- packages/abi-gen-wrappers/package.json | 14 ++++---- packages/abi-gen/package.json | 8 ++--- packages/assert/package.json | 8 ++--- packages/asset-buyer/package.json | 24 +++++++------- packages/base-contract/package.json | 10 +++--- packages/connect/package.json | 14 ++++---- packages/contract-addresses/package.json | 2 +- packages/contract-wrappers/package.json | 32 +++++++++--------- packages/contracts-gen/package.json | 12 +++---- packages/dev-tools-pages/package.json | 4 +-- packages/dev-utils/package.json | 14 ++++---- packages/ethereum-types/package.json | 2 +- packages/fill-scenarios/package.json | 18 +++++----- packages/instant/package.json | 22 ++++++------- packages/json-schemas/package.json | 6 ++-- packages/metacoin/package.json | 30 ++++++++--------- packages/migrations/package.json | 26 +++++++-------- packages/monorepo-scripts/package.json | 6 ++-- packages/order-utils/package.json | 24 +++++++------- packages/order-watcher/package.json | 34 +++++++++---------- packages/pipeline/package.json | 22 ++++++------- packages/react-docs/package.json | 10 +++--- packages/react-shared/package.json | 6 ++-- packages/sol-compiler/package.json | 20 ++++++------ packages/sol-coverage/package.json | 10 +++--- packages/sol-doc/package.json | 10 +++--- packages/sol-profiler/package.json | 12 +++---- packages/sol-resolver/package.json | 6 ++-- packages/sol-trace/package.json | 10 +++--- packages/sol-tracing-utils/package.json | 18 +++++----- packages/sra-spec/package.json | 4 +-- packages/subproviders/package.json | 14 ++++---- packages/testnet-faucets/package.json | 14 ++++---- packages/types/package.json | 4 +-- packages/typescript-typings/package.json | 4 +-- packages/utils/package.json | 8 ++--- packages/web3-wrapper/package.json | 12 +++---- packages/website/package.json | 28 ++++++++-------- 51 files changed, 460 insertions(+), 460 deletions(-) diff --git a/contracts/asset-proxy/package.json b/contracts/asset-proxy/package.json index 36bda3404c..22929783a6 100644 --- a/contracts/asset-proxy/package.json +++ b/contracts/asset-proxy/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-asset-proxy", - "version": "1.0.9", + "version": "2.0.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/protocol/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,17 +67,17 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/contracts-erc20": "^1.0.9", - "@0x/contracts-erc721": "^1.0.9", - "@0x/contracts-erc1155": "^1.0.0", - "@0x/contracts-utils": "^2.0.8", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/base-contract": "^5.0.3", + "@0x/contracts-erc1155": "^1.0.1", + "@0x/contracts-erc20": "^2.0.0", + "@0x/contracts-erc721": "^2.0.0", + "@0x/contracts-utils": "^3.0.0", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/contracts/coordinator/package.json b/contracts/coordinator/package.json index b78e923e62..d307412802 100644 --- a/contracts/coordinator/package.json +++ b/contracts/coordinator/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-coordinator", - "version": "0.0.1", + "version": "1.0.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/extensions/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,18 +67,18 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/contracts-asset-proxy": "^1.0.9", - "@0x/contracts-erc20": "^1.0.9", + "@0x/base-contract": "^5.0.3", + "@0x/contracts-asset-proxy": "^2.0.0", + "@0x/contracts-erc20": "^2.0.0", "@0x/contracts-exchange": "1.0.2", - "@0x/contracts-exchange-libs": "^1.1.3", - "@0x/contracts-utils": "^2.0.8", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/contracts-exchange-libs": "^2.0.0", + "@0x/contracts-utils": "^3.0.0", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11" }, diff --git a/contracts/erc1155/package.json b/contracts/erc1155/package.json index 28125dd162..9d4077c221 100644 --- a/contracts/erc1155/package.json +++ b/contracts/erc1155/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-erc1155", - "version": "1.0.0", + "version": "1.0.1", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,13 +67,13 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/contracts-utils": "^2.0.8", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/base-contract": "^5.0.3", + "@0x/contracts-utils": "^3.0.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/contracts/erc20/package.json b/contracts/erc20/package.json index 3725d02b78..ecd7632179 100644 --- a/contracts/erc20/package.json +++ b/contracts/erc20/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-erc20", - "version": "1.0.9", + "version": "2.0.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,14 +67,14 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/contracts-exchange-libs": "^1.1.3", - "@0x/contracts-utils": "^2.0.8", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/base-contract": "^5.0.3", + "@0x/contracts-exchange-libs": "^2.0.0", + "@0x/contracts-utils": "^3.0.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/contracts/erc721/package.json b/contracts/erc721/package.json index 4fd19b07c9..3920a0f758 100644 --- a/contracts/erc721/package.json +++ b/contracts/erc721/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-erc721", - "version": "1.0.9", + "version": "2.0.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,13 +67,13 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/contracts-utils": "^2.0.8", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/base-contract": "^5.0.3", + "@0x/contracts-utils": "^3.0.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/contracts/exchange-forwarder/package.json b/contracts/exchange-forwarder/package.json index 31777c0df0..c3a357329c 100644 --- a/contracts/exchange-forwarder/package.json +++ b/contracts/exchange-forwarder/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-exchange-forwarder", - "version": "1.0.9", + "version": "2.0.0", "engines": { "node": ">=6.12" }, @@ -46,12 +46,12 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/extensions/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contract-wrappers": "^8.0.3", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contract-wrappers": "^8.0.4", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -68,19 +68,19 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/contracts-asset-proxy": "^1.0.9", + "@0x/base-contract": "^5.0.3", + "@0x/contracts-asset-proxy": "^2.0.0", "@0x/contracts-erc20": "1.0.8", "@0x/contracts-erc721": "1.0.8", "@0x/contracts-exchange": "1.0.2", "@0x/contracts-exchange-libs": "1.0.2", "@0x/contracts-utils": "2.0.1", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/contracts/exchange-libs/package.json b/contracts/exchange-libs/package.json index e779bd9b58..787caf82e9 100644 --- a/contracts/exchange-libs/package.json +++ b/contracts/exchange-libs/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-exchange-libs", - "version": "1.1.3", + "version": "2.0.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/libs/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,14 +67,14 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/contracts-utils": "^2.0.8", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/base-contract": "^5.0.3", + "@0x/contracts-utils": "^3.0.0", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/contracts/exchange/package.json b/contracts/exchange/package.json index c32eb31e5e..895bf33ed2 100644 --- a/contracts/exchange/package.json +++ b/contracts/exchange/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-exchange", - "version": "1.0.9", + "version": "2.0.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/protocol/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,19 +67,19 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/contracts-asset-proxy": "^1.0.9", - "@0x/contracts-erc20": "^1.0.9", - "@0x/contracts-erc721": "^1.0.9", - "@0x/contracts-erc1155": "^1.0.0", - "@0x/contracts-exchange-libs": "^1.1.3", - "@0x/contracts-utils": "^2.0.8", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/base-contract": "^5.0.3", + "@0x/contracts-asset-proxy": "^2.0.0", + "@0x/contracts-erc1155": "^1.0.1", + "@0x/contracts-erc20": "^2.0.0", + "@0x/contracts-erc721": "^2.0.0", + "@0x/contracts-exchange-libs": "^2.0.0", + "@0x/contracts-utils": "^3.0.0", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11" }, diff --git a/contracts/extensions/package.json b/contracts/extensions/package.json index e67c8d95a5..8a028e176a 100644 --- a/contracts/extensions/package.json +++ b/contracts/extensions/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-extensions", - "version": "2.0.8", + "version": "3.0.0", "engines": { "node": ">=6.12" }, @@ -46,12 +46,12 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/extensions/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contract-wrappers": "^8.0.3", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contract-wrappers": "^8.0.4", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -68,19 +68,19 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/contracts-asset-proxy": "^1.0.9", - "@0x/contracts-erc20": "^1.0.9", - "@0x/contracts-erc721": "^1.0.9", - "@0x/contracts-exchange": "^1.0.9", - "@0x/contracts-exchange-libs": "^1.1.3", - "@0x/contracts-utils": "^2.0.8", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/base-contract": "^5.0.3", + "@0x/contracts-asset-proxy": "^2.0.0", + "@0x/contracts-erc20": "^2.0.0", + "@0x/contracts-erc721": "^2.0.0", + "@0x/contracts-exchange": "^2.0.0", + "@0x/contracts-exchange-libs": "^2.0.0", + "@0x/contracts-utils": "^3.0.0", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/contracts/multisig/package.json b/contracts/multisig/package.json index 7fb45261c4..0aa611eb1e 100644 --- a/contracts/multisig/package.json +++ b/contracts/multisig/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-multisig", - "version": "2.0.8", + "version": "3.0.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/multisig/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,15 +67,15 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/contracts-asset-proxy": "^1.0.9", - "@0x/contracts-erc20": "^1.0.9", + "@0x/base-contract": "^5.0.3", + "@0x/contracts-asset-proxy": "^2.0.0", + "@0x/contracts-erc20": "^2.0.0", "@0x/contracts-utils": "2.0.1", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/contracts/test-utils/package.json b/contracts/test-utils/package.json index 685b4bf291..aa8c1f4140 100644 --- a/contracts/test-utils/package.json +++ b/contracts/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-test-utils", - "version": "3.0.8", + "version": "3.1.0", "engines": { "node": ">=6.12" }, @@ -40,19 +40,19 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/dev-utils": "^2.1.3", - "@0x/order-utils": "^7.0.2", - "@0x/sol-compiler": "^3.1.3", - "@0x/sol-coverage": "^3.0.0", - "@0x/sol-profiler": "^3.1.2", - "@0x/sol-trace": "^2.0.8", - "@0x/subproviders": "^4.0.2", + "@0x/abi-gen": "^2.0.7", + "@0x/dev-utils": "^2.1.4", + "@0x/order-utils": "^7.1.0", + "@0x/sol-compiler": "^3.1.4", + "@0x/sol-coverage": "^3.0.1", + "@0x/sol-profiler": "^3.1.3", + "@0x/sol-trace": "^2.0.9", + "@0x/subproviders": "^4.0.3", "@0x/tslint-config": "^3.0.0", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@types/bn.js": "^4.11.0", "@types/js-combinatorics": "^0.5.29", "@types/lodash": "4.14.104", @@ -62,7 +62,7 @@ "chai-as-promised": "^7.1.0", "chai-bignumber": "^3.0.0", "dirty-chai": "^2.0.1", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", "js-combinatorics": "^0.5.3", diff --git a/contracts/utils/package.json b/contracts/utils/package.json index 3d83834965..574f18f2c5 100644 --- a/contracts/utils/package.json +++ b/contracts/utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-utils", - "version": "2.0.8", + "version": "3.0.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/utils/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", - "@0x/contracts-gen": "^1.0.5", - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/abi-gen": "^2.0.7", + "@0x/contracts-gen": "^1.0.6", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", "@types/bn.js": "^4.11.0", "@types/lodash": "4.14.104", @@ -68,14 +68,14 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.2", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/base-contract": "^5.0.3", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "bn.js": "^4.11.8", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11" }, diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json index fd6849525c..3320feb371 100644 --- a/packages/0x.js/package.json +++ b/packages/0x.js/package.json @@ -1,6 +1,6 @@ { "name": "0x.js", - "version": "6.0.3", + "version": "6.0.4", "engines": { "node": ">=6.12" }, @@ -42,10 +42,10 @@ }, "license": "Apache-2.0", "devDependencies": { - "@0x/abi-gen-wrappers": "^4.0.2", - "@0x/contract-addresses": "^2.2.2", - "@0x/dev-utils": "^2.1.3", - "@0x/migrations": "^4.0.3", + "@0x/abi-gen-wrappers": "^4.0.3", + "@0x/contract-addresses": "^2.2.3", + "@0x/dev-utils": "^2.1.4", + "@0x/migrations": "^4.0.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/mocha": "^2.2.42", @@ -72,18 +72,18 @@ "webpack": "^4.20.2" }, "dependencies": { - "@0x/assert": "^2.0.6", - "@0x/base-contract": "^5.0.2", - "@0x/contract-wrappers": "^8.0.3", - "@0x/order-utils": "^7.0.2", - "@0x/order-watcher": "^4.0.3", - "@0x/subproviders": "^4.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/assert": "^2.0.7", + "@0x/base-contract": "^5.0.3", + "@0x/contract-wrappers": "^8.0.4", + "@0x/order-utils": "^7.1.0", + "@0x/order-watcher": "^4.0.4", + "@0x/subproviders": "^4.0.3", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@types/web3-provider-engine": "^14.0.0", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11", "web3-provider-engine": "14.0.6" diff --git a/packages/abi-gen-wrappers/package.json b/packages/abi-gen-wrappers/package.json index 7567ff13b1..4d8a5dc8f2 100644 --- a/packages/abi-gen-wrappers/package.json +++ b/packages/abi-gen-wrappers/package.json @@ -1,6 +1,6 @@ { "name": "@0x/abi-gen-wrappers", - "version": "4.0.2", + "version": "4.0.3", "engines": { "node": ">=6.12" }, @@ -30,19 +30,19 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen-wrappers/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.6", + "@0x/abi-gen": "^2.0.7", "@0x/abi-gen-templates": "^2.0.1", "@0x/tslint-config": "^3.0.0", - "@0x/types": "^2.1.1", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/types": "^2.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11", "shx": "^0.2.2" }, "dependencies": { - "@0x/base-contract": "^5.0.2" + "@0x/base-contract": "^5.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/abi-gen/package.json b/packages/abi-gen/package.json index 5f81192db3..0060b1b8ed 100644 --- a/packages/abi-gen/package.json +++ b/packages/abi-gen/package.json @@ -1,6 +1,6 @@ { "name": "@0x/abi-gen", - "version": "2.0.6", + "version": "2.0.7", "engines": { "node": ">=6.12" }, @@ -31,10 +31,10 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen/README.md", "dependencies": { - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", "chalk": "^2.3.0", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "glob": "^7.1.2", "handlebars": "^4.0.11", "lodash": "^4.17.11", diff --git a/packages/assert/package.json b/packages/assert/package.json index 1b7456e19c..6a226bb76c 100644 --- a/packages/assert/package.json +++ b/packages/assert/package.json @@ -1,6 +1,6 @@ { "name": "@0x/assert", - "version": "2.0.6", + "version": "2.0.7", "engines": { "node": ">=6.12" }, @@ -44,9 +44,9 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/json-schemas": "^3.0.6", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", + "@0x/json-schemas": "^3.0.7", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", "lodash": "^4.17.11", "valid-url": "^1.0.9" }, diff --git a/packages/asset-buyer/package.json b/packages/asset-buyer/package.json index 06ec8f803b..65922ae62e 100644 --- a/packages/asset-buyer/package.json +++ b/packages/asset-buyer/package.json @@ -1,6 +1,6 @@ { "name": "@0x/asset-buyer", - "version": "6.0.3", + "version": "6.0.4", "engines": { "node": ">=6.12" }, @@ -36,17 +36,17 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/asset-buyer/README.md", "dependencies": { - "@0x/assert": "^2.0.6", - "@0x/connect": "^5.0.2", - "@0x/contract-wrappers": "^8.0.3", - "@0x/json-schemas": "^3.0.6", - "@0x/order-utils": "^7.0.2", - "@0x/subproviders": "^4.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/assert": "^2.0.7", + "@0x/connect": "^5.0.3", + "@0x/contract-wrappers": "^8.0.4", + "@0x/json-schemas": "^3.0.7", + "@0x/order-utils": "^7.1.0", + "@0x/subproviders": "^4.0.3", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, "devDependencies": { diff --git a/packages/base-contract/package.json b/packages/base-contract/package.json index 70a6b602c4..39558184f3 100644 --- a/packages/base-contract/package.json +++ b/packages/base-contract/package.json @@ -1,6 +1,6 @@ { "name": "@0x/base-contract", - "version": "5.0.2", + "version": "5.0.3", "engines": { "node": ">=6.12" }, @@ -40,10 +40,10 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11" }, diff --git a/packages/connect/package.json b/packages/connect/package.json index 94d0c0603d..e0a3027611 100644 --- a/packages/connect/package.json +++ b/packages/connect/package.json @@ -1,6 +1,6 @@ { "name": "@0x/connect", - "version": "5.0.2", + "version": "5.0.3", "engines": { "node": ">=6.12" }, @@ -44,12 +44,12 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/connect/README.md", "dependencies": { - "@0x/assert": "^2.0.6", - "@0x/json-schemas": "^3.0.6", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", + "@0x/assert": "^2.0.7", + "@0x/json-schemas": "^3.0.7", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", "lodash": "^4.17.11", "query-string": "^6.0.0", "sinon": "^4.0.0", diff --git a/packages/contract-addresses/package.json b/packages/contract-addresses/package.json index d7cce96882..76c791cb5f 100644 --- a/packages/contract-addresses/package.json +++ b/packages/contract-addresses/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contract-addresses", - "version": "2.2.2", + "version": "2.2.3", "engines": { "node": ">=6.12" }, diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json index 324f2d6c49..b1d409c9a7 100644 --- a/packages/contract-wrappers/package.json +++ b/packages/contract-wrappers/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contract-wrappers", - "version": "8.0.3", + "version": "8.0.4", "description": "Smart TS wrappers for 0x smart contracts", "keywords": [ "0xproject", @@ -37,11 +37,11 @@ "node": ">=6.0.0" }, "devDependencies": { - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/fill-scenarios": "^3.0.2", - "@0x/migrations": "^4.0.3", - "@0x/subproviders": "^4.0.2", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/fill-scenarios": "^3.0.3", + "@0x/migrations": "^4.0.4", + "@0x/subproviders": "^4.0.3", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/mocha": "^2.2.42", @@ -67,17 +67,17 @@ "web3-provider-engine": "14.0.6" }, "dependencies": { - "@0x/abi-gen-wrappers": "^4.0.2", - "@0x/assert": "^2.0.6", - "@0x/contract-addresses": "^2.2.2", + "@0x/abi-gen-wrappers": "^4.0.3", + "@0x/assert": "^2.0.7", + "@0x/contract-addresses": "^2.2.3", "@0x/contract-artifacts": "^1.3.0", - "@0x/json-schemas": "^3.0.6", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/json-schemas": "^3.0.7", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "ethereumjs-abi": "0.6.5", "ethereumjs-blockstream": "6.0.0", "ethereumjs-util": "^5.1.1", diff --git a/packages/contracts-gen/package.json b/packages/contracts-gen/package.json index a900fe4c93..b7161b2e6c 100644 --- a/packages/contracts-gen/package.json +++ b/packages/contracts-gen/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-gen", - "version": "1.0.5", + "version": "1.0.6", "engines": { "node": ">=6.12" }, @@ -26,11 +26,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/contracts-gen/README.md", "dependencies": { - "@0x/sol-resolver": "^2.0.4", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "ethereum-types": "^2.1.0", + "@0x/sol-resolver": "^2.0.5", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11", "prettier": "^1.16.3", "to-snake-case": "^1.0.0" diff --git a/packages/dev-tools-pages/package.json b/packages/dev-tools-pages/package.json index f2e61e80b4..2186b0ac69 100644 --- a/packages/dev-tools-pages/package.json +++ b/packages/dev-tools-pages/package.json @@ -1,6 +1,6 @@ { "name": "@0x/dev-tools-pages", - "version": "0.0.22", + "version": "0.0.23", "engines": { "node": ">=6.12" }, @@ -26,7 +26,7 @@ }, "license": "Apache-2.0", "dependencies": { - "@0x/react-shared": "^2.0.7", + "@0x/react-shared": "^2.0.8", "basscss": "^8.0.3", "bowser": "^1.9.4", "highlight.js": "^9.13.1", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 35b7f3af16..0571b5b082 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/dev-utils", - "version": "2.1.3", + "version": "2.1.4", "engines": { "node": ">=6.12" }, @@ -41,14 +41,14 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/subproviders": "^4.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/subproviders": "^4.0.3", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@types/web3-provider-engine": "^14.0.0", "chai": "^4.0.1", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/packages/ethereum-types/package.json b/packages/ethereum-types/package.json index 178eb3cca2..4f13f3b903 100644 --- a/packages/ethereum-types/package.json +++ b/packages/ethereum-types/package.json @@ -1,6 +1,6 @@ { "name": "ethereum-types", - "version": "2.1.0", + "version": "2.1.1", "engines": { "node": ">=6.12" }, diff --git a/packages/fill-scenarios/package.json b/packages/fill-scenarios/package.json index 08c6768573..4babe60e9b 100644 --- a/packages/fill-scenarios/package.json +++ b/packages/fill-scenarios/package.json @@ -1,6 +1,6 @@ { "name": "@0x/fill-scenarios", - "version": "3.0.2", + "version": "3.0.3", "description": "0x order fill scenario generator", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -28,15 +28,15 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/abi-gen-wrappers": "^4.0.2", - "@0x/base-contract": "^5.0.2", + "@0x/abi-gen-wrappers": "^4.0.3", + "@0x/base-contract": "^5.0.3", "@0x/contract-artifacts": "^1.3.0", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", - "ethereum-types": "^2.1.0", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", + "ethereum-types": "^2.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11" }, diff --git a/packages/instant/package.json b/packages/instant/package.json index a69ef5ba67..a085e993f4 100644 --- a/packages/instant/package.json +++ b/packages/instant/package.json @@ -1,6 +1,6 @@ { "name": "@0x/instant", - "version": "1.0.17", + "version": "1.0.18", "engines": { "node": ">=6.12" }, @@ -42,19 +42,19 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/instant/README.md", "dependencies": { - "@0x/assert": "^2.0.6", - "@0x/asset-buyer": "^6.0.3", - "@0x/json-schemas": "^3.0.6", - "@0x/order-utils": "^7.0.2", - "@0x/subproviders": "^4.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/assert": "^2.0.7", + "@0x/asset-buyer": "^6.0.4", + "@0x/json-schemas": "^3.0.7", + "@0x/order-utils": "^7.1.0", + "@0x/subproviders": "^4.0.3", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "babel-runtime": "^6.26.0", "bowser": "^1.9.4", "copy-to-clipboard": "^3.0.8", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11", "polished": "^1.9.2", "react": "^16.5.2", diff --git a/packages/json-schemas/package.json b/packages/json-schemas/package.json index 56e0e56e10..bc272cb990 100644 --- a/packages/json-schemas/package.json +++ b/packages/json-schemas/package.json @@ -1,6 +1,6 @@ { "name": "@0x/json-schemas", - "version": "3.0.6", + "version": "3.0.7", "engines": { "node": ">=6.12" }, @@ -39,14 +39,14 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/json-schemas/README.md", "dependencies": { - "@0x/typescript-typings": "^4.1.0", + "@0x/typescript-typings": "^4.2.0", "@types/node": "*", "jsonschema": "^1.2.0", "lodash.values": "^4.3.0" }, "devDependencies": { "@0x/tslint-config": "^3.0.0", - "@0x/utils": "^4.2.2", + "@0x/utils": "^4.2.3", "@types/lodash.foreach": "^4.5.3", "@types/lodash.values": "^4.3.3", "@types/mocha": "^2.2.42", diff --git a/packages/metacoin/package.json b/packages/metacoin/package.json index 8b3593755b..6ef95345c8 100644 --- a/packages/metacoin/package.json +++ b/packages/metacoin/package.json @@ -1,6 +1,6 @@ { "name": "@0x/metacoin", - "version": "0.0.44", + "version": "0.0.45", "engines": { "node": ">=6.12" }, @@ -30,29 +30,29 @@ "author": "", "license": "Apache-2.0", "dependencies": { - "@0x/abi-gen": "^2.0.6", + "@0x/abi-gen": "^2.0.7", "@0x/abi-gen-templates": "^2.0.1", - "@0x/base-contract": "^5.0.2", - "@0x/sol-coverage": "^3.0.0", - "@0x/sol-profiler": "^3.1.2", - "@0x/sol-trace": "^2.0.8", - "@0x/subproviders": "^4.0.2", + "@0x/base-contract": "^5.0.3", + "@0x/sol-coverage": "^3.0.1", + "@0x/sol-profiler": "^3.1.3", + "@0x/sol-trace": "^2.0.9", + "@0x/subproviders": "^4.0.3", "@0x/tslint-config": "^3.0.0", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@types/mocha": "^2.2.42", "copyfiles": "^2.0.0", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11", "run-s": "^0.0.0" }, "devDependencies": { - "@0x/contracts-test-utils": "^3.0.8", - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", + "@0x/contracts-test-utils": "^3.1.0", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", "chai": "^4.0.1", "chai-as-promised": "^7.1.0", "chai-bignumber": "^3.0.0", diff --git a/packages/migrations/package.json b/packages/migrations/package.json index 8d0cf3bd0f..77ff9a9d72 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -1,6 +1,6 @@ { "name": "@0x/migrations", - "version": "4.0.3", + "version": "4.0.4", "engines": { "node": ">=6.12" }, @@ -35,9 +35,9 @@ }, "license": "Apache-2.0", "devDependencies": { - "@0x/dev-utils": "^2.1.3", + "@0x/dev-utils": "^2.1.4", "@0x/tslint-config": "^3.0.0", - "@0x/types": "^2.1.1", + "@0x/types": "^2.2.0", "@types/yargs": "^11.0.0", "make-promises-safe": "^1.1.0", "npm-run-all": "^4.1.2", @@ -49,19 +49,19 @@ "yargs": "^10.0.3" }, "dependencies": { - "@0x/abi-gen-wrappers": "^4.0.2", - "@0x/base-contract": "^5.0.2", - "@0x/contract-addresses": "^2.2.2", + "@0x/abi-gen-wrappers": "^4.0.3", + "@0x/base-contract": "^5.0.3", + "@0x/contract-addresses": "^2.2.3", "@0x/contract-artifacts": "^1.3.0", - "@0x/order-utils": "^7.0.2", - "@0x/sol-compiler": "^3.1.3", - "@0x/subproviders": "^4.0.2", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/order-utils": "^7.1.0", + "@0x/sol-compiler": "^3.1.4", + "@0x/subproviders": "^4.0.3", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@ledgerhq/hw-app-eth": "^4.3.0", "@types/web3-provider-engine": "^14.0.0", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11" }, diff --git a/packages/monorepo-scripts/package.json b/packages/monorepo-scripts/package.json index da1b35def5..ccb2882384 100644 --- a/packages/monorepo-scripts/package.json +++ b/packages/monorepo-scripts/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@0x/monorepo-scripts", - "version": "1.0.27", + "version": "1.0.28", "engines": { "node": ">=6.12" }, @@ -47,8 +47,8 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/types": "^2.1.1", - "@0x/utils": "^4.2.2", + "@0x/types": "^2.2.0", + "@0x/utils": "^4.2.3", "@lerna/batch-packages": "^3.0.0-beta.18", "@types/depcheck": "^0.6.0", "async-child-process": "^1.1.1", diff --git a/packages/order-utils/package.json b/packages/order-utils/package.json index d1cebc5b11..c6b1231e95 100644 --- a/packages/order-utils/package.json +++ b/packages/order-utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/order-utils", - "version": "7.0.2", + "version": "7.1.0", "engines": { "node": ">=6.12" }, @@ -35,7 +35,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/order-utils/README.md", "devDependencies": { - "@0x/dev-utils": "^2.1.3", + "@0x/dev-utils": "^2.1.4", "@0x/tslint-config": "^3.0.0", "@types/bn.js": "^4.11.0", "@types/lodash": "4.14.104", @@ -55,19 +55,19 @@ "web3-provider-engine": "14.0.6" }, "dependencies": { - "@0x/abi-gen-wrappers": "^4.0.2", - "@0x/assert": "^2.0.6", - "@0x/base-contract": "^5.0.2", - "@0x/contract-addresses": "^2.2.2", + "@0x/abi-gen-wrappers": "^4.0.3", + "@0x/assert": "^2.0.7", + "@0x/base-contract": "^5.0.3", + "@0x/contract-addresses": "^2.2.3", "@0x/contract-artifacts": "^1.3.0", - "@0x/json-schemas": "^3.0.6", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/json-schemas": "^3.0.7", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@types/node": "*", "bn.js": "^4.11.8", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-abi": "0.6.5", "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", diff --git a/packages/order-watcher/package.json b/packages/order-watcher/package.json index 7558a01052..a94b4a04e7 100644 --- a/packages/order-watcher/package.json +++ b/packages/order-watcher/package.json @@ -1,6 +1,6 @@ { "name": "@0x/order-watcher", - "version": "4.0.3", + "version": "4.0.4", "description": "An order watcher daemon that watches for order validity", "keywords": [ "0x", @@ -38,9 +38,9 @@ "node": ">=6.0.0" }, "devDependencies": { - "@0x/dev-utils": "^2.1.3", - "@0x/migrations": "^4.0.3", - "@0x/subproviders": "^4.0.2", + "@0x/dev-utils": "^2.1.4", + "@0x/migrations": "^4.0.4", + "@0x/subproviders": "^4.0.3", "@0x/tslint-config": "^3.0.0", "@types/bintrees": "^1.0.2", "@types/lodash": "4.14.104", @@ -63,21 +63,21 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/abi-gen-wrappers": "^4.0.2", - "@0x/assert": "^2.0.6", - "@0x/base-contract": "^5.0.2", - "@0x/contract-addresses": "^2.2.2", + "@0x/abi-gen-wrappers": "^4.0.3", + "@0x/assert": "^2.0.7", + "@0x/base-contract": "^5.0.3", + "@0x/contract-addresses": "^2.2.3", "@0x/contract-artifacts": "^1.3.0", - "@0x/contract-wrappers": "^8.0.3", - "@0x/fill-scenarios": "^3.0.2", - "@0x/json-schemas": "^3.0.6", - "@0x/order-utils": "^7.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/contract-wrappers": "^8.0.4", + "@0x/fill-scenarios": "^3.0.3", + "@0x/json-schemas": "^3.0.7", + "@0x/order-utils": "^7.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "bintrees": "^1.0.2", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-blockstream": "6.0.0", "ethers": "~4.0.4", "lodash": "^4.17.11", diff --git a/packages/pipeline/package.json b/packages/pipeline/package.json index 658069ffad..b7b0ca501e 100644 --- a/packages/pipeline/package.json +++ b/packages/pipeline/package.json @@ -1,6 +1,6 @@ { "name": "@0x/pipeline", - "version": "1.0.14", + "version": "1.0.15", "private": true, "description": "Data pipeline for offline analysis", "scripts": { @@ -39,16 +39,16 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/connect": "^5.0.2", - "@0x/contract-addresses": "^2.2.2", + "@0x/connect": "^5.0.3", + "@0x/contract-addresses": "^2.2.3", "@0x/contract-artifacts": "^1.3.0", - "@0x/contract-wrappers": "^8.0.3", - "@0x/dev-utils": "^2.1.3", - "@0x/order-utils": "^7.0.2", - "@0x/subproviders": "^4.0.2", - "@0x/types": "^2.1.1", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/contract-wrappers": "^8.0.4", + "@0x/dev-utils": "^2.1.4", + "@0x/order-utils": "^7.1.0", + "@0x/subproviders": "^4.0.3", + "@0x/types": "^2.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@radarrelay/types": "^1.2.1", "@types/dockerode": "^2.5.9", "@types/p-limit": "^2.0.0", @@ -56,7 +56,7 @@ "axios": "^0.18.0", "bottleneck": "^2.13.2", "dockerode": "^2.5.7", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "pg": "^7.5.0", "prettier": "^1.16.3", "ramda": "^0.25.0", diff --git a/packages/react-docs/package.json b/packages/react-docs/package.json index b021f55b87..415456fa6e 100644 --- a/packages/react-docs/package.json +++ b/packages/react-docs/package.json @@ -1,6 +1,6 @@ { "name": "@0x/react-docs", - "version": "2.0.7", + "version": "2.0.8", "engines": { "node": ">=6.12" }, @@ -24,7 +24,7 @@ "url": "https://github.com/0xProject/0x-monorepo.git" }, "devDependencies": { - "@0x/dev-utils": "^2.1.3", + "@0x/dev-utils": "^2.1.4", "@0x/tslint-config": "^3.0.0", "@types/compare-versions": "^3.0.0", "@types/styled-components": "4.0.0", @@ -34,9 +34,9 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/react-shared": "^2.0.7", - "@0x/types": "^2.1.1", - "@0x/utils": "^4.2.2", + "@0x/react-shared": "^2.0.8", + "@0x/types": "^2.2.0", + "@0x/utils": "^4.2.3", "@types/lodash": "4.14.104", "@types/material-ui": "^0.20.0", "@types/node": "*", diff --git a/packages/react-shared/package.json b/packages/react-shared/package.json index 41a4025772..44f19ed050 100644 --- a/packages/react-shared/package.json +++ b/packages/react-shared/package.json @@ -1,6 +1,6 @@ { "name": "@0x/react-shared", - "version": "2.0.7", + "version": "2.0.8", "engines": { "node": ">=6.12" }, @@ -25,7 +25,7 @@ "url": "https://github.com/0xProject/0x-monorepo.git" }, "devDependencies": { - "@0x/dev-utils": "^2.1.3", + "@0x/dev-utils": "^2.1.4", "@0x/tslint-config": "^3.0.0", "make-promises-safe": "^1.1.0", "shx": "^0.2.2", @@ -33,7 +33,7 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/types": "^2.1.1", + "@0x/types": "^2.2.0", "@material-ui/core": "^3.0.1", "@types/is-mobile": "0.3.0", "@types/lodash": "4.14.104", diff --git a/packages/sol-compiler/package.json b/packages/sol-compiler/package.json index a0d8cbcd04..13dadc3a72 100644 --- a/packages/sol-compiler/package.json +++ b/packages/sol-compiler/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-compiler", - "version": "3.1.3", + "version": "3.1.4", "engines": { "node": ">=6.12" }, @@ -42,7 +42,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-compiler/README.md", "devDependencies": { - "@0x/dev-utils": "^2.1.3", + "@0x/dev-utils": "^2.1.4", "@0x/tslint-config": "^3.0.0", "@types/chokidar": "^1.7.5", "@types/mkdirp": "^0.5.2", @@ -69,17 +69,17 @@ "zeppelin-solidity": "1.8.0" }, "dependencies": { - "@0x/assert": "^2.0.6", - "@0x/json-schemas": "^3.0.6", - "@0x/sol-resolver": "^2.0.4", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/assert": "^2.0.7", + "@0x/json-schemas": "^3.0.7", + "@0x/sol-resolver": "^2.0.5", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@types/yargs": "^11.0.0", "chalk": "^2.3.0", "chokidar": "^2.0.4", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11", "mkdirp": "^0.5.1", diff --git a/packages/sol-coverage/package.json b/packages/sol-coverage/package.json index 327b340390..d5e302b90f 100644 --- a/packages/sol-coverage/package.json +++ b/packages/sol-coverage/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-coverage", - "version": "3.0.0", + "version": "3.0.1", "engines": { "node": ">=6.12" }, @@ -29,11 +29,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-coverage/README.md", "dependencies": { - "@0x/sol-tracing-utils": "^6.0.7", - "@0x/subproviders": "^4.0.2", - "@0x/typescript-typings": "^4.1.0", + "@0x/sol-tracing-utils": "^6.0.8", + "@0x/subproviders": "^4.0.3", + "@0x/typescript-typings": "^4.2.0", "@types/minimatch": "^3.0.3", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "lodash": "^4.17.11", "minimatch": "^3.0.4", "web3-provider-engine": "14.0.6" diff --git a/packages/sol-doc/package.json b/packages/sol-doc/package.json index 50daf4f4ac..9dad6fbcb1 100644 --- a/packages/sol-doc/package.json +++ b/packages/sol-doc/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-doc", - "version": "2.0.7", + "version": "2.0.8", "description": "Solidity documentation generator", "main": "lib/src/index.js", "types": "lib/src/index.d.js", @@ -25,10 +25,10 @@ "author": "F. Eugene Aumson", "license": "Apache-2.0", "dependencies": { - "@0x/sol-compiler": "^3.1.3", - "@0x/types": "^2.1.1", - "@0x/utils": "^4.2.2", - "ethereum-types": "^2.1.0", + "@0x/sol-compiler": "^3.1.4", + "@0x/types": "^2.2.0", + "@0x/utils": "^4.2.3", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11", "yargs": "^10.0.3" diff --git a/packages/sol-profiler/package.json b/packages/sol-profiler/package.json index 1e7e3787a1..a124929db3 100644 --- a/packages/sol-profiler/package.json +++ b/packages/sol-profiler/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-profiler", - "version": "3.1.2", + "version": "3.1.3", "engines": { "node": ">=6.12" }, @@ -29,11 +29,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-profiler/README.md", "dependencies": { - "@0x/sol-tracing-utils": "^6.0.7", - "@0x/subproviders": "^4.0.2", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "ethereum-types": "^2.1.0", + "@0x/sol-tracing-utils": "^6.0.8", + "@0x/subproviders": "^4.0.3", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11", "web3-provider-engine": "14.0.6" diff --git a/packages/sol-resolver/package.json b/packages/sol-resolver/package.json index c06e1762f6..4b80a5fc4b 100644 --- a/packages/sol-resolver/package.json +++ b/packages/sol-resolver/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-resolver", - "version": "2.0.4", + "version": "2.0.5", "engines": { "node": ">=6.12" }, @@ -30,8 +30,8 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/packages/sol-trace/package.json b/packages/sol-trace/package.json index 0a721de9e7..ea3795e310 100644 --- a/packages/sol-trace/package.json +++ b/packages/sol-trace/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-trace", - "version": "2.0.8", + "version": "2.0.9", "engines": { "node": ">=6.12" }, @@ -29,11 +29,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-trace/README.md", "dependencies": { - "@0x/sol-tracing-utils": "^6.0.7", - "@0x/subproviders": "^4.0.2", - "@0x/typescript-typings": "^4.1.0", + "@0x/sol-tracing-utils": "^6.0.8", + "@0x/subproviders": "^4.0.3", + "@0x/typescript-typings": "^4.2.0", "chalk": "^2.3.0", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11", "loglevel": "^1.6.1", diff --git a/packages/sol-tracing-utils/package.json b/packages/sol-tracing-utils/package.json index 4ac5d88a45..83455e5226 100644 --- a/packages/sol-tracing-utils/package.json +++ b/packages/sol-tracing-utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-tracing-utils", - "version": "6.0.7", + "version": "6.0.8", "engines": { "node": ">=6.12" }, @@ -42,16 +42,16 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-tracing-utils/README.md", "dependencies": { - "@0x/dev-utils": "^2.1.3", - "@0x/sol-compiler": "^3.1.3", - "@0x/sol-resolver": "^2.0.4", - "@0x/subproviders": "^4.0.2", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/dev-utils": "^2.1.4", + "@0x/sol-compiler": "^3.1.4", + "@0x/sol-resolver": "^2.0.5", + "@0x/subproviders": "^4.0.3", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@types/solidity-parser-antlr": "^0.2.3", "chalk": "^2.3.0", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", "glob": "^7.1.2", diff --git a/packages/sra-spec/package.json b/packages/sra-spec/package.json index 19b5f7044d..7516fd1bca 100644 --- a/packages/sra-spec/package.json +++ b/packages/sra-spec/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sra-spec", - "version": "2.0.6", + "version": "2.0.7", "engines": { "node": ">=6.12" }, @@ -35,7 +35,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sra-spec/README.md", "dependencies": { - "@0x/json-schemas": "^3.0.6", + "@0x/json-schemas": "^3.0.7", "@loopback/openapi-v3-types": "^0.8.2" }, "devDependencies": { diff --git a/packages/subproviders/package.json b/packages/subproviders/package.json index 49dadb2ed9..b58163c732 100644 --- a/packages/subproviders/package.json +++ b/packages/subproviders/package.json @@ -1,6 +1,6 @@ { "name": "@0x/subproviders", - "version": "4.0.2", + "version": "4.0.3", "engines": { "node": ">=6.12" }, @@ -29,11 +29,11 @@ } }, "dependencies": { - "@0x/assert": "^2.0.6", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/assert": "^2.0.7", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@ledgerhq/hw-app-eth": "^4.3.0", "@ledgerhq/hw-transport-u2f": "4.24.0", "@types/eth-lightwallet": "^3.0.0", @@ -42,7 +42,7 @@ "bip39": "^2.5.0", "bn.js": "^4.11.8", "eth-lightwallet": "^3.0.1", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-tx": "^1.3.5", "ethereumjs-util": "^5.1.1", "ganache-core": "^2.5.3", diff --git a/packages/testnet-faucets/package.json b/packages/testnet-faucets/package.json index 2fa2b50574..9e30c38014 100644 --- a/packages/testnet-faucets/package.json +++ b/packages/testnet-faucets/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@0x/testnet-faucets", - "version": "1.0.73", + "version": "1.0.74", "engines": { "node": ">=6.12" }, @@ -18,13 +18,13 @@ "author": "Fabio Berger", "license": "Apache-2.0", "dependencies": { - "0x.js": "^6.0.3", - "@0x/subproviders": "^4.0.2", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "0x.js": "^6.0.4", + "@0x/subproviders": "^4.0.3", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "body-parser": "^1.17.1", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-tx": "^1.3.5", "ethereumjs-util": "^5.1.1", "express": "^4.15.2", diff --git a/packages/types/package.json b/packages/types/package.json index 2db58d094c..cc7af4df24 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@0x/types", - "version": "2.1.1", + "version": "2.2.0", "engines": { "node": ">=6.12" }, @@ -32,7 +32,7 @@ "dependencies": { "@types/node": "*", "bignumber.js": "~8.0.2", - "ethereum-types": "^2.1.0" + "ethereum-types": "^2.1.1" }, "publishConfig": { "access": "public" diff --git a/packages/typescript-typings/package.json b/packages/typescript-typings/package.json index f5b9525339..d7c50191d7 100644 --- a/packages/typescript-typings/package.json +++ b/packages/typescript-typings/package.json @@ -1,6 +1,6 @@ { "name": "@0x/typescript-typings", - "version": "4.1.0", + "version": "4.2.0", "engines": { "node": ">=6.12" }, @@ -27,7 +27,7 @@ "@types/bn.js": "^4.11.0", "@types/react": "*", "bignumber.js": "~8.0.2", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "popper.js": "1.14.3" }, "devDependencies": { diff --git a/packages/utils/package.json b/packages/utils/package.json index 8fbb2202d0..4585009a54 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/utils", - "version": "4.2.2", + "version": "4.2.3", "engines": { "node": ">=6.12" }, @@ -44,14 +44,14 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", "@types/node": "*", "abortcontroller-polyfill": "^1.1.9", "bignumber.js": "~8.0.2", "chalk": "^2.3.0", "detect-node": "2.0.3", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", "isomorphic-fetch": "2.2.1", diff --git a/packages/web3-wrapper/package.json b/packages/web3-wrapper/package.json index d93e1d1dc0..e72480f8fe 100644 --- a/packages/web3-wrapper/package.json +++ b/packages/web3-wrapper/package.json @@ -1,6 +1,6 @@ { "name": "@0x/web3-wrapper", - "version": "6.0.2", + "version": "6.0.3", "engines": { "node": ">=6.12" }, @@ -53,11 +53,11 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/assert": "^2.0.6", - "@0x/json-schemas": "^3.0.6", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "ethereum-types": "^2.1.0", + "@0x/assert": "^2.0.7", + "@0x/json-schemas": "^3.0.7", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11" diff --git a/packages/website/package.json b/packages/website/package.json index 45b8428d8d..cadb0c267f 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -1,6 +1,6 @@ { "name": "@0x/website", - "version": "0.0.76", + "version": "0.0.77", "engines": { "node": ">=6.12" }, @@ -20,18 +20,18 @@ "author": "Fabio Berger", "license": "Apache-2.0", "dependencies": { - "@0x/asset-buyer": "^6.0.3", - "@0x/contract-addresses": "^2.2.2", - "@0x/contract-wrappers": "^8.0.3", - "@0x/json-schemas": "^3.0.6", - "@0x/order-utils": "^7.0.2", - "@0x/react-docs": "^2.0.7", - "@0x/react-shared": "^2.0.7", - "@0x/subproviders": "^4.0.2", - "@0x/types": "^2.1.1", - "@0x/typescript-typings": "^4.1.0", - "@0x/utils": "^4.2.2", - "@0x/web3-wrapper": "^6.0.2", + "@0x/asset-buyer": "^6.0.4", + "@0x/contract-addresses": "^2.2.3", + "@0x/contract-wrappers": "^8.0.4", + "@0x/json-schemas": "^3.0.7", + "@0x/order-utils": "^7.1.0", + "@0x/react-docs": "^2.0.8", + "@0x/react-shared": "^2.0.8", + "@0x/subproviders": "^4.0.3", + "@0x/types": "^2.2.0", + "@0x/typescript-typings": "^4.2.0", + "@0x/utils": "^4.2.3", + "@0x/web3-wrapper": "^6.0.3", "@reach/dialog": "^0.1.2", "@types/react-lazyload": "^2.3.1", "@types/react-loadable": "^5.4.2", @@ -42,7 +42,7 @@ "blockies": "^0.0.2", "bowser": "^1.9.4", "deep-equal": "^1.0.1", - "ethereum-types": "^2.1.0", + "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "find-versions": "^2.0.0", "jsonschema": "^1.2.0", From 4b2488b1242a58de94a167ca068324e17cbbbd48 Mon Sep 17 00:00:00 2001 From: Lawrence Date: Wed, 20 Mar 2019 10:58:25 -0400 Subject: [PATCH 58/95] Ran prettier. --- contracts/utils/test/lib_address_array.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/contracts/utils/test/lib_address_array.ts b/contracts/utils/test/lib_address_array.ts index 536229c049..0a3464a406 100644 --- a/contracts/utils/test/lib_address_array.ts +++ b/contracts/utils/test/lib_address_array.ts @@ -93,9 +93,7 @@ describe('LibAddressArray', () => { addr, ); // The new location should be the end of the old array + freeMemOffset. - const expectedNewArrayMemStart = oldArrayMemStart - .plus((arr.length + 1) * 32) - .plus(freeMemOffset); + const expectedNewArrayMemStart = oldArrayMemStart.plus((arr.length + 1) * 32).plus(freeMemOffset); expect(result).to.deep.equal(expectedArray); expect(newArrayMemStart).bignumber.to.be.equal(expectedNewArrayMemStart); }); From 542d1c1c415f95319ca047c190b14ddef6fad24a Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Wed, 20 Mar 2019 16:27:13 +0100 Subject: [PATCH 59/95] In-line the declaration --- packages/typescript-typings/types/ganache-core/index.d.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/typescript-typings/types/ganache-core/index.d.ts b/packages/typescript-typings/types/ganache-core/index.d.ts index e3cbcdad5c..ebd288e2fb 100644 --- a/packages/typescript-typings/types/ganache-core/index.d.ts +++ b/packages/typescript-typings/types/ganache-core/index.d.ts @@ -1,5 +1,7 @@ declare module 'ganache-core' { - const Provider = require('ethereum-types').Provider; + export interface GanacheProvider { + sendAsync(payload: JSONRPCRequestPayload, callback: JSONRPCErrorCallback): void; + } export interface GanacheOpts { verbose?: boolean; logger?: { @@ -13,5 +15,5 @@ declare module 'ganache-core' { vmErrorsOnRPCResponse?: boolean; db_path?: string; } - export function provider(opts: GanacheOpts): Provider; + export function provider(opts: GanacheOpts): GanacheProvider; } From 6845d2e0efe1641a2f03a4d0004f638e67dee997 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Wed, 20 Mar 2019 16:56:08 +0100 Subject: [PATCH 60/95] Add coordinator artifacts to python package --- .../contract_artifacts/Coordinator.json | 364 ++++++++++++++++++ .../CoordinatorRegistry.json | 122 ++++++ 2 files changed, 486 insertions(+) create mode 100644 python-packages/contract_artifacts/Coordinator.json create mode 100644 python-packages/contract_artifacts/CoordinatorRegistry.json diff --git a/python-packages/contract_artifacts/Coordinator.json b/python-packages/contract_artifacts/Coordinator.json new file mode 100644 index 0000000000..3cc8a1fdd5 --- /dev/null +++ b/python-packages/contract_artifacts/Coordinator.json @@ -0,0 +1,364 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "Coordinator", + "compilerOutput": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "bytes32" + }, + { + "name": "signature", + "type": "bytes" + } + ], + "name": "getSignerAddress", + "outputs": [ + { + "name": "signerAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "executeTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidCoordinatorApprovals", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EIP712_DOMAIN_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "components": [ + { + "name": "makerAddress", + "type": "address" + }, + { + "name": "takerAddress", + "type": "address" + }, + { + "name": "feeRecipientAddress", + "type": "address" + }, + { + "name": "senderAddress", + "type": "address" + }, + { + "name": "makerAssetAmount", + "type": "uint256" + }, + { + "name": "takerAssetAmount", + "type": "uint256" + }, + { + "name": "makerFee", + "type": "uint256" + }, + { + "name": "takerFee", + "type": "uint256" + }, + { + "name": "expirationTimeSeconds", + "type": "uint256" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "makerAssetData", + "type": "bytes" + }, + { + "name": "takerAssetData", + "type": "bytes" + } + ], + "name": "orders", + "type": "tuple[]" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTransactionOrdersApproval", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_exchange", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x60806040523480156200001157600080fd5b506040516020806200238083398101806040526200003391908101906200022b565b604080517f454950373132446f6d61696e28000000000000000000000000000000000000006020808301919091527f737472696e67206e616d652c0000000000000000000000000000000000000000602d8301527f737472696e672076657273696f6e2c000000000000000000000000000000000060398301527f6164647265737320766572696679696e67436f6e74726163740000000000000060488301527f29000000000000000000000000000000000000000000000000000000000000006061830152825180830360420181526062830180855281519183019190912060a28401855260179091527f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000060829093019290925282518084018452600581527f312e302e30000000000000000000000000000000000000000000000000000000908201528251808201929092527f626d101e477fd17dd52afb3f9ad9eb016bf60f6e377877f34e8f3ea84c930236828401527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060830152306080808401919091528351808403909101815260a0909201909252805191012060005560018054600160a060020a031916600160a060020a039290921691909117905562000273565b600062000224825162000260565b9392505050565b6000602082840312156200023e57600080fd5b60006200024c848462000216565b949350505050565b600160a060020a031690565b60006200026d8262000254565b92915050565b6120fd80620002836000396000f3fe608060405234801561001057600080fd5b5060043610610084576000357c010000000000000000000000000000000000000000000000000000000090048063d2df07331161006d578063d2df0733146100c7578063e306f779146100da578063e3b1aa86146100ef57610084565b80630f7d8e391461008957806390c3bc3f146100b2575b600080fd5b61009c610097366004611888565b610102565b6040516100a99190611e6f565b60405180910390f35b6100c56100c036600461196e565b6104f7565b005b6100c56100d536600461196e565b6105a3565b6100e26105d4565b6040516100a99190611e7d565b6100c56100fd366004611a42565b6105da565b6000808251111515610149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f3b565b60405180910390fd5b600061015483610821565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f2b565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff6108e516565b905060006102c687602163ffffffff6108e516565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff6108e516565b9050600061041287602163ffffffff6108e516565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b92915050565b61050485858585856105a3565b6001548551602087015160408089015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361056a93909290918990600401611f5b565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050505050505050565b60606105b28660400151610930565b90506000815111156105cc576105cc8682878787876105da565b505050505050565b60005481565b3273ffffffffffffffffffffffffffffffffffffffff851614610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f0b565b600061063487610de8565b60408051600080825260208201909252845192935091905b80821461073c576000868281518110151561066357fe5b906020019060200201519050610677611220565b506040805160808101825273ffffffffffffffffffffffffffffffffffffffff8b16815260208101879052908101899052606081018290524282116106e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611edb565b60006106f382610dfb565b90506000610718828a8781518110151561070957fe5b90602001906020020151610102565b905061072a878263ffffffff610e0916565b9650506001909301925061064c915050565b5061074d823263ffffffff610e0916565b885190925060005b8082146108145789516000908b908390811061076d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561079c5761080c565b60008a828151811015156107ac57fe5b6020908102909101015160400151905060006107ce868363ffffffff610ed316565b9050801515610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e9b565b50505b600101610755565b5050505050505050505050565b600080825111151561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f1b565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061088f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eeb565b50016020015190565b60606000610944838263ffffffff610f1016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d50000000000000000000000000000000000000000000000000000000014806109d757507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610a2357507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610aad57610a30611248565b8351610a4690859060049063ffffffff610f7d16565b806020019051610a5991908101906118da565b604080516001808252818301909252919250816020015b610a78611248565b815260200190600190039081610a7057905050925080836000815181101515610a9d57fe5b6020908102909101015250610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610b3e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610b8a57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610bd657507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610c2257507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610c6e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610cba57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610cef578251610cd590849060049063ffffffff610f7d16565b806020019051610ce8919081019061184b565b9150610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610de257610d41611248565b610d49611248565b8451610d5f90869060049063ffffffff610f7d16565b806020019051610d72919081019061190f565b60408051600280825260608201909252929450909250816020015b610d95611248565b815260200190600190039081610d8d57905050935081846000815181101515610dba57fe5b602090810290910101528351819085906001908110610dd557fe5b6020908102909101015250505b50919050565b60006104f1610df683611049565b6110b7565b60006104f1610df6836110f7565b815160405160609184906020808202808401820192910182851015610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ecb565b82851115610e7457610e6d858583611156565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610ea157fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b6000602083510260208401818101815b81811015610f0657805180871415610efd57600195508291505b50602001610ee3565b5050505092915050565b600081600401835110151515610f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f4b565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eab565b8351821115610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ebb565b8282036040519080825280601f01601f191660200182016040528015611021576020820181803883390190505b5090506110426110308261121a565b8461103a8761121a565b018351611156565b9392505050565b604081810151825160209384015182519285019290922083517f213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c81529485019190915273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260608201526080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b604080820151825160208085015160608681015185519584019590952086517f2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e058152938401949094529482015292830152608082015260a09020919050565b6020811015611180576001816020036101000a038019835116818551168082178652505050611215565b8282141561118d57611215565b828211156111c75760208103905080820181840181515b828510156111bf5784518652602095860195909401936111a4565b905250611215565b60208103905080820181840183515b8186121561121057825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111d6565b855250505b505050565b60200190565b6040805160808101825260008082526020820181905260609282018390529181019190915290565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006110428235612038565b60006110428251612038565b6000601f8201831361132b57600080fd5b813561133e61133982611fcd565b611fa6565b81815260209384019390925082018360005b83811015610f06578135860161136688826114b2565b8452506020928301929190910190600101611350565b6000601f8201831361138d57600080fd5b815161139b61133982611fcd565b81815260209384019390925082018360005b83811015610f0657815186016113c38882611690565b84525060209283019291909101906001016113ad565b6000601f820183136113ea57600080fd5b81356113f861133982611fcd565b81815260209384019390925082018360005b83811015610f0657813586016114208882611547565b845250602092830192919091019060010161140a565b6000601f8201831361144757600080fd5b813561145561133982611fcd565b9150818183526020840193506020810190508385602084028201111561147a57600080fd5b60005b83811015610f06578161149088826114a6565b845250602092830192919091019060010161147d565b60006110428235612043565b6000601f820183136114c357600080fd5b81356114d161133982611fee565b915080825260208301602083018583830111156114ed57600080fd5b6114f883828461205f565b50505092915050565b6000601f8201831361151257600080fd5b815161152061133982611fee565b9150808252602083016020830185838301111561153c57600080fd5b6114f883828461206b565b6000610180828403121561155a57600080fd5b611565610180611fa6565b905060006115738484611302565b825250602061158484848301611302565b602083015250604061159884828501611302565b60408301525060606115ac84828501611302565b60608301525060806115c0848285016114a6565b60808301525060a06115d4848285016114a6565b60a08301525060c06115e8848285016114a6565b60c08301525060e06115fc848285016114a6565b60e083015250610100611611848285016114a6565b61010083015250610120611627848285016114a6565b6101208301525061014082013567ffffffffffffffff81111561164957600080fd5b611655848285016114b2565b6101408301525061016082013567ffffffffffffffff81111561167757600080fd5b611683848285016114b2565b6101608301525092915050565b600061018082840312156116a357600080fd5b6116ae610180611fa6565b905060006116bc848461130e565b82525060206116cd8484830161130e565b60208301525060406116e18482850161130e565b60408301525060606116f58482850161130e565b60608301525060806117098482850161183f565b60808301525060a061171d8482850161183f565b60a08301525060c06117318482850161183f565b60c08301525060e06117458482850161183f565b60e08301525061010061175a8482850161183f565b610100830152506101206117708482850161183f565b6101208301525061014082015167ffffffffffffffff81111561179257600080fd5b61179e84828501611501565b6101408301525061016082015167ffffffffffffffff8111156117c057600080fd5b61168384828501611501565b6000606082840312156117de57600080fd5b6117e86060611fa6565b905060006117f684846114a6565b825250602061180784848301611302565b602083015250604082013567ffffffffffffffff81111561182757600080fd5b611833848285016114b2565b60408301525092915050565b60006110428251612043565b60006020828403121561185d57600080fd5b815167ffffffffffffffff81111561187457600080fd5b6118808482850161137c565b949350505050565b6000806040838503121561189b57600080fd5b60006118a785856114a6565b925050602083013567ffffffffffffffff8111156118c457600080fd5b6118d0858286016114b2565b9150509250929050565b6000602082840312156118ec57600080fd5b815167ffffffffffffffff81111561190357600080fd5b61188084828501611690565b6000806040838503121561192257600080fd5b825167ffffffffffffffff81111561193957600080fd5b61194585828601611690565b925050602083015167ffffffffffffffff81111561196257600080fd5b6118d085828601611690565b600080600080600060a0868803121561198657600080fd5b853567ffffffffffffffff81111561199d57600080fd5b6119a9888289016117cc565b95505060206119ba88828901611302565b945050604086013567ffffffffffffffff8111156119d757600080fd5b6119e3888289016114b2565b935050606086013567ffffffffffffffff811115611a0057600080fd5b611a0c88828901611436565b925050608086013567ffffffffffffffff811115611a2957600080fd5b611a358882890161131a565b9150509295509295909350565b60008060008060008060c08789031215611a5b57600080fd5b863567ffffffffffffffff811115611a7257600080fd5b611a7e89828a016117cc565b965050602087013567ffffffffffffffff811115611a9b57600080fd5b611aa789828a016113d9565b9550506040611ab889828a01611302565b945050606087013567ffffffffffffffff811115611ad557600080fd5b611ae189828a016114b2565b935050608087013567ffffffffffffffff811115611afe57600080fd5b611b0a89828a01611436565b92505060a087013567ffffffffffffffff811115611b2757600080fd5b611b3389828a0161131a565b9150509295509295509295565b611b4981612038565b82525050565b611b4981612043565b6000611b6382612034565b808452611b7781602086016020860161206b565b611b808161209b565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b600e81527f494e56414c49445f4f524947494e000000000000000000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611b40565b602081016104f18284611b4f565b602080825281016104f181611b8d565b602080825281016104f181611bbd565b602080825281016104f181611bed565b602080825281016104f181611c1d565b602080825281016104f181611c4d565b602080825281016104f181611c7d565b602080825281016104f181611cad565b602080825281016104f181611d03565b602080825281016104f181611d33565b602080825281016104f181611d63565b602080825281016104f181611db9565b602080825281016104f181611de9565b602080825281016104f181611e19565b60808101611f698287611b4f565b611f766020830186611b40565b8181036040830152611f888185611b58565b90508181036060830152611f9c8184611b58565b9695505050505050565b60405181810167ffffffffffffffff81118282101715611fc557600080fd5b604052919050565b600067ffffffffffffffff821115611fe457600080fd5b5060209081020190565b600067ffffffffffffffff82111561200557600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612046565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561208657818101518382015260200161206e565b83811115612095576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a7230582013be4e9e281ff59b6be3d1c4c7af6075c7d255edc60be429d25841f98f287b3e6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x2380 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x33 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x22B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0x2D DUP4 ADD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0x39 DUP4 ADD MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0x48 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x61 DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB PUSH1 0x42 ADD DUP2 MSTORE PUSH1 0x62 DUP4 ADD DUP1 DUP6 MSTORE DUP2 MLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0xA2 DUP5 ADD DUP6 MSTORE PUSH1 0x17 SWAP1 SWAP2 MSTORE PUSH32 0x30782050726F746F636F6C20436F6F7264696E61746F72000000000000000000 PUSH1 0x82 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP3 ADD MSTORE DUP3 MLOAD DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0x626D101E477FD17DD52AFB3F9AD9EB016BF60F6E377877F34E8F3EA84C930236 DUP3 DUP5 ADD MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP4 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x273 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x224 DUP3 MLOAD PUSH3 0x260 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x24C DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26D DUP3 PUSH3 0x254 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x20FD DUP1 PUSH3 0x283 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xD2DF0733 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD2DF0733 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE3B1AA86 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x90C3BC3F EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1888 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E7D JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F3B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x821 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F2B JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP6 MLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x56A SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x598 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B2 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x930 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x5CC JUMPI PUSH2 0x5CC DUP7 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x5DA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST ORIGIN PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EQ PUSH2 0x629 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634 DUP8 PUSH2 0xDE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP1 DUP3 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x663 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x677 PUSH2 0x1220 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EDB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F3 DUP3 PUSH2 0xDFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x718 DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x709 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x72A DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x64C SWAP2 POP POP JUMP JUMPDEST POP PUSH2 0x74D DUP3 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST DUP9 MLOAD SWAP1 SWAP3 POP PUSH1 0x0 JUMPDEST DUP1 DUP3 EQ PUSH2 0x814 JUMPI DUP10 MLOAD PUSH1 0x0 SWAP1 DUP12 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x76D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x79C JUMPI PUSH2 0x80C JUMP JUMPDEST PUSH1 0x0 DUP11 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x7AC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x7CE DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xED3 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E9B JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x755 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x88F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EEB JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x944 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF10 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x9D7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xA23 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xAAD JUMPI PUSH2 0xA30 PUSH2 0x1248 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xA46 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xA59 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xA78 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xA70 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB3E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xB8A JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBD6 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC22 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC6E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCBA JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xCEF JUMPI DUP3 MLOAD PUSH2 0xCD5 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xCE8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x184B JUMP JUMPDEST SWAP2 POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xDE2 JUMPI PUSH2 0xD41 PUSH2 0x1248 JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1248 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xD5F SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD72 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x190F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xD95 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8D JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDBA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xDD5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x1049 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x10F7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0xE5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0xE74 JUMPI PUSH2 0xE6D DUP6 DUP6 DUP4 PUSH2 0x1156 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEA1 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD MUL PUSH1 0x20 DUP5 ADD DUP2 DUP2 ADD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP1 MLOAD DUP1 DUP8 EQ ISZERO PUSH2 0xEFD JUMPI PUSH1 0x1 SWAP6 POP DUP3 SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD PUSH2 0xEE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F4B JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1042 PUSH2 0x1030 DUP3 PUSH2 0x121A JUMP JUMPDEST DUP5 PUSH2 0x103A DUP8 PUSH2 0x121A JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x1156 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD MLOAD DUP3 MLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD PUSH32 0x213C6F636F3EA94E701C0ADF9B2624AA45A6C694F9A292C094F9A81C24B5DF4C DUP2 MSTORE SWAP5 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP7 DUP2 ADD MLOAD DUP6 MLOAD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 DUP7 MLOAD PUSH32 0x2FBCDBAA76BC7589916958AE919DFBEF04D23F6BBF26DE6FF317B32C6CC01E05 DUP2 MSTORE SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 DUP3 ADD MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 SWAP1 KECCAK256 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1180 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x118D JUMPI PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x11C7 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x11BF JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x11A4 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x1210 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x11D6 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x132B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x133E PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x1FA6 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1366 DUP9 DUP3 PUSH2 0x14B2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1350 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x139B PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x13C3 DUP9 DUP3 PUSH2 0x1690 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13F8 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1420 DUP9 DUP3 PUSH2 0x1547 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x140A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1455 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 PUSH2 0x1490 DUP9 DUP3 PUSH2 0x14A6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x147D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x14C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14D1 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x14ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x205F JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1520 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x153C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x206B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1565 PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1573 DUP5 DUP5 PUSH2 0x1302 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1584 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1598 DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x15AC DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x15C0 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x15D4 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x15E8 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x15FC DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1611 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1627 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1655 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AE PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16BC DUP5 DUP5 PUSH2 0x130E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x16CD DUP5 DUP5 DUP4 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16E1 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16F5 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1709 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x171D DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1731 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1745 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x175A DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1770 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x179E DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E8 PUSH1 0x60 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17F6 DUP5 DUP5 PUSH2 0x14A6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1807 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1833 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x137C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x189B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A7 DUP6 DUP6 PUSH2 0x14A6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1945 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A9 DUP9 DUP3 DUP10 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x19BA DUP9 DUP3 DUP10 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E3 DUP9 DUP3 DUP10 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0C DUP9 DUP3 DUP10 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A35 DUP9 DUP3 DUP10 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A7E DUP10 DUP3 DUP11 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AA7 DUP10 DUP3 DUP11 ADD PUSH2 0x13D9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1AB8 DUP10 DUP3 DUP11 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AE1 DUP10 DUP3 DUP11 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0A DUP10 DUP3 DUP11 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B33 DUP10 DUP3 DUP11 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2038 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B63 DUP3 PUSH2 0x2034 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1B77 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1B80 DUP2 PUSH2 0x209B JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F4F524947494E000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B40 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B4F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1B8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BBD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C7D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1CAD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D03 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DE9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E19 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x1F69 DUP3 DUP8 PUSH2 0x1B4F JUMP JUMPDEST PUSH2 0x1F76 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B40 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1F88 DUP2 DUP6 PUSH2 0x1B58 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1F9C DUP2 DUP5 PUSH2 0x1B58 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2005 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2046 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2086 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x206E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 SGT 0xbe 0x4e SWAP15 0x28 0x1f CREATE2 SWAP12 PUSH12 0xE3D1C4C7AF6075C7D255EDC6 SIGNEXTEND 0xe4 0x29 0xd2 PC COINBASE 0xf9 DUP16 0x28 PUSH28 0x3E6C6578706572696D656E74616CF500370000000000000000000000 ", + "sourceMap": "837:227:0:-;;;977:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;977:85:0;;;;;;;;;;;;;;;;;;;;;;1067:148:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;1067:148:10;;;;;;1057:159;;;;;;;;;1533:18;;;;;;;;;;;;;;;;;;1583:21;;;;;;;;;;;;;;;1438:214;;;;;;;;;1517:36;1438:214;;;;1567:39;1438:214;;;;1636:4;1438:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1438:214:10;;;;;;;1428:225;;;;;-1:-1:-1;1407:246:10;1067:148;830:35:8;;-1:-1:-1;;;;;;830:35:8;-1:-1:-1;;;;;830:35:8;;;;;;;;;;837:227:0;;5:122:-1;;83:39;114:6;108:13;83:39;;;74:48;68:59;-1:-1;;;68:59;134:263;;249:2;237:9;228:7;224:23;220:32;217:2;;;265:1;262;255:12;217:2;300:1;317:64;373:7;353:9;317:64;;;307:74;211:186;-1:-1;;;;211:186;404:128;-1:-1;;;;;473:54;;456:76;539:105;;608:31;633:5;608:31;;;597:42;591:53;-1:-1;;591:53;;837:227:0;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610084576000357c010000000000000000000000000000000000000000000000000000000090048063d2df07331161006d578063d2df0733146100c7578063e306f779146100da578063e3b1aa86146100ef57610084565b80630f7d8e391461008957806390c3bc3f146100b2575b600080fd5b61009c610097366004611888565b610102565b6040516100a99190611e6f565b60405180910390f35b6100c56100c036600461196e565b6104f7565b005b6100c56100d536600461196e565b6105a3565b6100e26105d4565b6040516100a99190611e7d565b6100c56100fd366004611a42565b6105da565b6000808251111515610149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f3b565b60405180910390fd5b600061015483610821565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f2b565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff6108e516565b905060006102c687602163ffffffff6108e516565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff6108e516565b9050600061041287602163ffffffff6108e516565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b92915050565b61050485858585856105a3565b6001548551602087015160408089015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361056a93909290918990600401611f5b565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050505050505050565b60606105b28660400151610930565b90506000815111156105cc576105cc8682878787876105da565b505050505050565b60005481565b3273ffffffffffffffffffffffffffffffffffffffff851614610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f0b565b600061063487610de8565b60408051600080825260208201909252845192935091905b80821461073c576000868281518110151561066357fe5b906020019060200201519050610677611220565b506040805160808101825273ffffffffffffffffffffffffffffffffffffffff8b16815260208101879052908101899052606081018290524282116106e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611edb565b60006106f382610dfb565b90506000610718828a8781518110151561070957fe5b90602001906020020151610102565b905061072a878263ffffffff610e0916565b9650506001909301925061064c915050565b5061074d823263ffffffff610e0916565b885190925060005b8082146108145789516000908b908390811061076d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561079c5761080c565b60008a828151811015156107ac57fe5b6020908102909101015160400151905060006107ce868363ffffffff610ed316565b9050801515610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e9b565b50505b600101610755565b5050505050505050505050565b600080825111151561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f1b565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061088f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eeb565b50016020015190565b60606000610944838263ffffffff610f1016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d50000000000000000000000000000000000000000000000000000000014806109d757507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610a2357507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610aad57610a30611248565b8351610a4690859060049063ffffffff610f7d16565b806020019051610a5991908101906118da565b604080516001808252818301909252919250816020015b610a78611248565b815260200190600190039081610a7057905050925080836000815181101515610a9d57fe5b6020908102909101015250610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610b3e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610b8a57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610bd657507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610c2257507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610c6e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610cba57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610cef578251610cd590849060049063ffffffff610f7d16565b806020019051610ce8919081019061184b565b9150610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610de257610d41611248565b610d49611248565b8451610d5f90869060049063ffffffff610f7d16565b806020019051610d72919081019061190f565b60408051600280825260608201909252929450909250816020015b610d95611248565b815260200190600190039081610d8d57905050935081846000815181101515610dba57fe5b602090810290910101528351819085906001908110610dd557fe5b6020908102909101015250505b50919050565b60006104f1610df683611049565b6110b7565b60006104f1610df6836110f7565b815160405160609184906020808202808401820192910182851015610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ecb565b82851115610e7457610e6d858583611156565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610ea157fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b6000602083510260208401818101815b81811015610f0657805180871415610efd57600195508291505b50602001610ee3565b5050505092915050565b600081600401835110151515610f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f4b565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eab565b8351821115610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ebb565b8282036040519080825280601f01601f191660200182016040528015611021576020820181803883390190505b5090506110426110308261121a565b8461103a8761121a565b018351611156565b9392505050565b604081810151825160209384015182519285019290922083517f213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c81529485019190915273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260608201526080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b604080820151825160208085015160608681015185519584019590952086517f2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e058152938401949094529482015292830152608082015260a09020919050565b6020811015611180576001816020036101000a038019835116818551168082178652505050611215565b8282141561118d57611215565b828211156111c75760208103905080820181840181515b828510156111bf5784518652602095860195909401936111a4565b905250611215565b60208103905080820181840183515b8186121561121057825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111d6565b855250505b505050565b60200190565b6040805160808101825260008082526020820181905260609282018390529181019190915290565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006110428235612038565b60006110428251612038565b6000601f8201831361132b57600080fd5b813561133e61133982611fcd565b611fa6565b81815260209384019390925082018360005b83811015610f06578135860161136688826114b2565b8452506020928301929190910190600101611350565b6000601f8201831361138d57600080fd5b815161139b61133982611fcd565b81815260209384019390925082018360005b83811015610f0657815186016113c38882611690565b84525060209283019291909101906001016113ad565b6000601f820183136113ea57600080fd5b81356113f861133982611fcd565b81815260209384019390925082018360005b83811015610f0657813586016114208882611547565b845250602092830192919091019060010161140a565b6000601f8201831361144757600080fd5b813561145561133982611fcd565b9150818183526020840193506020810190508385602084028201111561147a57600080fd5b60005b83811015610f06578161149088826114a6565b845250602092830192919091019060010161147d565b60006110428235612043565b6000601f820183136114c357600080fd5b81356114d161133982611fee565b915080825260208301602083018583830111156114ed57600080fd5b6114f883828461205f565b50505092915050565b6000601f8201831361151257600080fd5b815161152061133982611fee565b9150808252602083016020830185838301111561153c57600080fd5b6114f883828461206b565b6000610180828403121561155a57600080fd5b611565610180611fa6565b905060006115738484611302565b825250602061158484848301611302565b602083015250604061159884828501611302565b60408301525060606115ac84828501611302565b60608301525060806115c0848285016114a6565b60808301525060a06115d4848285016114a6565b60a08301525060c06115e8848285016114a6565b60c08301525060e06115fc848285016114a6565b60e083015250610100611611848285016114a6565b61010083015250610120611627848285016114a6565b6101208301525061014082013567ffffffffffffffff81111561164957600080fd5b611655848285016114b2565b6101408301525061016082013567ffffffffffffffff81111561167757600080fd5b611683848285016114b2565b6101608301525092915050565b600061018082840312156116a357600080fd5b6116ae610180611fa6565b905060006116bc848461130e565b82525060206116cd8484830161130e565b60208301525060406116e18482850161130e565b60408301525060606116f58482850161130e565b60608301525060806117098482850161183f565b60808301525060a061171d8482850161183f565b60a08301525060c06117318482850161183f565b60c08301525060e06117458482850161183f565b60e08301525061010061175a8482850161183f565b610100830152506101206117708482850161183f565b6101208301525061014082015167ffffffffffffffff81111561179257600080fd5b61179e84828501611501565b6101408301525061016082015167ffffffffffffffff8111156117c057600080fd5b61168384828501611501565b6000606082840312156117de57600080fd5b6117e86060611fa6565b905060006117f684846114a6565b825250602061180784848301611302565b602083015250604082013567ffffffffffffffff81111561182757600080fd5b611833848285016114b2565b60408301525092915050565b60006110428251612043565b60006020828403121561185d57600080fd5b815167ffffffffffffffff81111561187457600080fd5b6118808482850161137c565b949350505050565b6000806040838503121561189b57600080fd5b60006118a785856114a6565b925050602083013567ffffffffffffffff8111156118c457600080fd5b6118d0858286016114b2565b9150509250929050565b6000602082840312156118ec57600080fd5b815167ffffffffffffffff81111561190357600080fd5b61188084828501611690565b6000806040838503121561192257600080fd5b825167ffffffffffffffff81111561193957600080fd5b61194585828601611690565b925050602083015167ffffffffffffffff81111561196257600080fd5b6118d085828601611690565b600080600080600060a0868803121561198657600080fd5b853567ffffffffffffffff81111561199d57600080fd5b6119a9888289016117cc565b95505060206119ba88828901611302565b945050604086013567ffffffffffffffff8111156119d757600080fd5b6119e3888289016114b2565b935050606086013567ffffffffffffffff811115611a0057600080fd5b611a0c88828901611436565b925050608086013567ffffffffffffffff811115611a2957600080fd5b611a358882890161131a565b9150509295509295909350565b60008060008060008060c08789031215611a5b57600080fd5b863567ffffffffffffffff811115611a7257600080fd5b611a7e89828a016117cc565b965050602087013567ffffffffffffffff811115611a9b57600080fd5b611aa789828a016113d9565b9550506040611ab889828a01611302565b945050606087013567ffffffffffffffff811115611ad557600080fd5b611ae189828a016114b2565b935050608087013567ffffffffffffffff811115611afe57600080fd5b611b0a89828a01611436565b92505060a087013567ffffffffffffffff811115611b2757600080fd5b611b3389828a0161131a565b9150509295509295509295565b611b4981612038565b82525050565b611b4981612043565b6000611b6382612034565b808452611b7781602086016020860161206b565b611b808161209b565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b600e81527f494e56414c49445f4f524947494e000000000000000000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611b40565b602081016104f18284611b4f565b602080825281016104f181611b8d565b602080825281016104f181611bbd565b602080825281016104f181611bed565b602080825281016104f181611c1d565b602080825281016104f181611c4d565b602080825281016104f181611c7d565b602080825281016104f181611cad565b602080825281016104f181611d03565b602080825281016104f181611d33565b602080825281016104f181611d63565b602080825281016104f181611db9565b602080825281016104f181611de9565b602080825281016104f181611e19565b60808101611f698287611b4f565b611f766020830186611b40565b8181036040830152611f888185611b58565b90508181036060830152611f9c8184611b58565b9695505050505050565b60405181810167ffffffffffffffff81118282101715611fc557600080fd5b604052919050565b600067ffffffffffffffff821115611fe457600080fd5b5060209081020190565b600067ffffffffffffffff82111561200557600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612046565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561208657818101518382015260200161206e565b83811115612095576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a7230582013be4e9e281ff59b6be3d1c4c7af6075c7d255edc60be429d25841f98f287b3e6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xD2DF0733 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD2DF0733 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE3B1AA86 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x90C3BC3F EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1888 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E7D JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F3B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x821 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F2B JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP6 MLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x56A SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x598 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B2 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x930 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x5CC JUMPI PUSH2 0x5CC DUP7 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x5DA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST ORIGIN PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EQ PUSH2 0x629 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634 DUP8 PUSH2 0xDE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP1 DUP3 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x663 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x677 PUSH2 0x1220 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EDB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F3 DUP3 PUSH2 0xDFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x718 DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x709 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x72A DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x64C SWAP2 POP POP JUMP JUMPDEST POP PUSH2 0x74D DUP3 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST DUP9 MLOAD SWAP1 SWAP3 POP PUSH1 0x0 JUMPDEST DUP1 DUP3 EQ PUSH2 0x814 JUMPI DUP10 MLOAD PUSH1 0x0 SWAP1 DUP12 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x76D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x79C JUMPI PUSH2 0x80C JUMP JUMPDEST PUSH1 0x0 DUP11 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x7AC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x7CE DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xED3 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E9B JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x755 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x88F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EEB JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x944 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF10 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x9D7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xA23 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xAAD JUMPI PUSH2 0xA30 PUSH2 0x1248 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xA46 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xA59 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xA78 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xA70 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB3E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xB8A JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBD6 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC22 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC6E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCBA JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xCEF JUMPI DUP3 MLOAD PUSH2 0xCD5 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xCE8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x184B JUMP JUMPDEST SWAP2 POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xDE2 JUMPI PUSH2 0xD41 PUSH2 0x1248 JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1248 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xD5F SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD72 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x190F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xD95 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8D JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDBA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xDD5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x1049 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x10F7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0xE5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0xE74 JUMPI PUSH2 0xE6D DUP6 DUP6 DUP4 PUSH2 0x1156 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEA1 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD MUL PUSH1 0x20 DUP5 ADD DUP2 DUP2 ADD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP1 MLOAD DUP1 DUP8 EQ ISZERO PUSH2 0xEFD JUMPI PUSH1 0x1 SWAP6 POP DUP3 SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD PUSH2 0xEE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F4B JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1042 PUSH2 0x1030 DUP3 PUSH2 0x121A JUMP JUMPDEST DUP5 PUSH2 0x103A DUP8 PUSH2 0x121A JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x1156 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD MLOAD DUP3 MLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD PUSH32 0x213C6F636F3EA94E701C0ADF9B2624AA45A6C694F9A292C094F9A81C24B5DF4C DUP2 MSTORE SWAP5 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP7 DUP2 ADD MLOAD DUP6 MLOAD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 DUP7 MLOAD PUSH32 0x2FBCDBAA76BC7589916958AE919DFBEF04D23F6BBF26DE6FF317B32C6CC01E05 DUP2 MSTORE SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 DUP3 ADD MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 SWAP1 KECCAK256 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1180 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x118D JUMPI PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x11C7 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x11BF JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x11A4 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x1210 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x11D6 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x132B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x133E PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x1FA6 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1366 DUP9 DUP3 PUSH2 0x14B2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1350 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x139B PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x13C3 DUP9 DUP3 PUSH2 0x1690 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13F8 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1420 DUP9 DUP3 PUSH2 0x1547 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x140A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1455 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 PUSH2 0x1490 DUP9 DUP3 PUSH2 0x14A6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x147D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x14C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14D1 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x14ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x205F JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1520 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x153C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x206B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1565 PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1573 DUP5 DUP5 PUSH2 0x1302 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1584 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1598 DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x15AC DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x15C0 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x15D4 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x15E8 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x15FC DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1611 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1627 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1655 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AE PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16BC DUP5 DUP5 PUSH2 0x130E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x16CD DUP5 DUP5 DUP4 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16E1 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16F5 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1709 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x171D DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1731 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1745 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x175A DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1770 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x179E DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E8 PUSH1 0x60 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17F6 DUP5 DUP5 PUSH2 0x14A6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1807 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1833 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x137C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x189B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A7 DUP6 DUP6 PUSH2 0x14A6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1945 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A9 DUP9 DUP3 DUP10 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x19BA DUP9 DUP3 DUP10 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E3 DUP9 DUP3 DUP10 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0C DUP9 DUP3 DUP10 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A35 DUP9 DUP3 DUP10 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A7E DUP10 DUP3 DUP11 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AA7 DUP10 DUP3 DUP11 ADD PUSH2 0x13D9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1AB8 DUP10 DUP3 DUP11 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AE1 DUP10 DUP3 DUP11 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0A DUP10 DUP3 DUP11 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B33 DUP10 DUP3 DUP11 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2038 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B63 DUP3 PUSH2 0x2034 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1B77 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1B80 DUP2 PUSH2 0x209B JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F4F524947494E000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B40 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B4F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1B8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BBD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C7D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1CAD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D03 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DE9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E19 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x1F69 DUP3 DUP8 PUSH2 0x1B4F JUMP JUMPDEST PUSH2 0x1F76 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B40 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1F88 DUP2 DUP6 PUSH2 0x1B58 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1F9C DUP2 DUP5 PUSH2 0x1B58 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2005 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2046 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2086 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x206E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 SGT 0xbe 0x4e SWAP15 0x28 0x1f CREATE2 SWAP12 PUSH12 0xE3D1C4C7AF6075C7D255EDC6 SIGNEXTEND 0xe4 0x29 0xd2 PC COINBASE 0xf9 DUP16 0x28 PUSH28 0x3E6C6578706572696D656E74616CF500370000000000000000000000 ", + "sourceMap": "837:227:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;837:227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:3;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1627:801:2;;;;;;;;;:::i;:::-;;2108:913:1;;;;;;;;;:::i;1323:33:10:-;;;:::i;:::-;;;;;;;;3713:2773:1;;;;;;;;;:::i;988:2549:3:-;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:3;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:3;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:3;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:3;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:3;;;;;;-1:-1:-1;2510:20:3;;-1:-1:-1;;;;;;2510:20:3;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:3;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:3;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:3;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:3;3499:31;;;;;;;;;;;988:2549;;;;;:::o;1627:801:2:-;2008:197;2053:11;2078:8;2100:20;2134:29;2177:18;2008:31;:197::i;:::-;2251:8;;2292:16;;2322:25;;;;2361:16;;;;;2251:170;;;;;:8;;;;;:27;;:170;;2292:16;;2322:25;;2391:20;;2251:170;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2251:170:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2251:170:2;;;;1627:801;;;;;:::o;2108:913:1:-;2511:30;2544:38;2565:11;:16;;;2544:20;:38::i;:::-;2511:71;;2669:1;2653:6;:13;:17;2649:366;;;2754:250;2808:11;2837:6;2861:8;2887:20;2925:29;2972:18;2754:36;:250::i;:::-;2108:913;;;;;;:::o;1323:33:10:-;;;;:::o;3713:2773:1:-;4182:9;:21;;;;4161:82;;;;;;;;;;;;;;4285:23;4311:31;4330:11;4311:18;:31::i;:::-;4445:16;;;4459:1;4445:16;;;;;;;;;4499:25;;4285:57;;-1:-1:-1;4445:16:1;4499:25;4534:1151;4554:21;;;4534:1151;;4635:44;4682:29;4712:1;4682:32;;;;;;;;;;;;;;;;;;4635:79;;4728:35;;:::i;:::-;-1:-1:-1;4766:266:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5220:15;5181:54;;5094:191;;;;;;;;;;;;;;5364:20;5387:36;5414:8;5387:26;:36::i;:::-;5364:59;;5437:29;5469:53;5486:12;5500:18;5519:1;5500:21;;;;;;;;;;;;;;;;;;5469:16;:53::i;:::-;5437:85;-1:-1:-1;5621:53:1;:23;5437:85;5621:53;:30;:53;:::i;:::-;5595:79;-1:-1:-1;;4577:3:1;;;;;-1:-1:-1;4534:1151:1;;-1:-1:-1;;4534:1151:1;;-1:-1:-1;5801:41:1;:23;5832:9;5801:41;:30;:41;:::i;:::-;5884:13;;5775:67;;-1:-1:-1;5861:20:1;5907:573;5927:17;;;5907:573;;6043:9;;6078:1;;6043:6;;6050:1;;6043:9;;;;;;;;;;;;;;:23;;;:37;;;6039:84;;;6100:8;;6039:84;6214:23;6240:6;6247:1;6240:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;6283:20:1;6306:49;:23;6240:29;6306:49;:32;:49;:::i;:::-;6283:72;;6394:15;6369:100;;;;;;;;;;;;;;;;5907:573;;;5946:3;;5907:573;;;;3713:2773;;;;;;;;;;:::o;8315:448:22:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:22;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:22;13631:2;13729:13;13723:20;;13292:490::o;6698:1760:1:-;6794:30;6840:15;6858:18;:4;6840:15;6858:18;:15;:18;:::i;:::-;6840:36;-1:-1:-1;6903:31:1;;;6915:19;6903:31;;:87;;-1:-1:-1;6950:40:1;;;6962:28;6950:40;6903:87;:142;;;-1:-1:-1;7006:39:1;;;7018:27;7006:39;6903:142;6886:1543;;;7106:27;;:::i;:::-;7179:11;;7165:26;;7179:4;;7176:1;;7165:26;:10;:26;:::i;:::-;7137:102;;;;;;;;;;;;;;7262:23;;;7283:1;7262:23;;;;;;;;;7105:134;;-1:-1:-1;7262:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7253:32;;7311:5;7299:6;7306:1;7299:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6886:1543:1;;;7350:38;;;7362:26;7350:38;;:101;;-1:-1:-1;7404:47:1;;;7416:35;7404:47;7350:101;:163;;;-1:-1:-1;7467:46:1;;;7479:34;7467:46;7350:163;:217;;;-1:-1:-1;7529:38:1;;;7541:26;7529:38;7350:217;:280;;;-1:-1:-1;7583:47:1;;;7595:35;7583:47;7350:280;:335;;;-1:-1:-1;7646:39:1;;;7658:27;7646:39;7350:335;:399;;;-1:-1:-1;7701:48:1;;;7713:36;7701:48;7350:399;7333:1096;;;7898:11;;7884:26;;7898:4;;7895:1;;7884:26;:10;:26;:::i;:::-;7856:104;;;;;;;;;;;;;;7845:115;;7333:1096;;;7981:33;;;7993:21;7981:33;7977:452;;;8075:31;;:::i;:::-;8108:32;;:::i;:::-;8186:11;;8172:26;;8186:4;;8183:1;;8172:26;:10;:26;:::i;:::-;8144:118;;;;;;;;;;;;;;8324:23;;;8345:1;8324:23;;;;;;;;;8074:188;;-1:-1:-1;8074:188:1;;-1:-1:-1;8324:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8315:32;;8373:9;8361:6;8368:1;8361:9;;;;;;;;;;;;;;;;;;:21;8396:9;;8408:10;;8396:6;;8403:1;;8396:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7977:452:1;-1:-1:-1;6698:1760:1;;;:::o;1602:406:11:-;1715:23;1916:53;1934:34;1956:11;1934:21;:34::i;:::-;1916:17;:53::i;2006:259:9:-;2126:20;2177:52;2195:33;2219:8;2195:23;:33::i;1089:2103:21:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:21;;-1:-1:-1;;;;;1089:2103:21;;;;:::o;3431:1034::-;3543:12;3686:2;3671:12;3665:19;3661:28;3799:2;3785:12;3781:21;3911:12;3891:18;3887:37;3985:18;3972:453;4011:16;4008:1;4005:23;3972:453;;;4130:1;4124:8;4226:12;4218:6;4215:24;4212:2;;;4316:1;4305:12;;4377:16;4372:21;;4212:2;-1:-1:-1;4042:2:21;4035:10;3972:453;;;-1:-1:-1;;;;3431:1034:21;;;;:::o;15595:687:22:-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:22;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:22;87:34:-1;135:17;;-1:-1;6890:20:22;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;2255:1419:11:-;2489:16;;;;;2530;;2580:25;;;;;3004:11;;2989:13;;;2979:37;;;;3088:9;;992:66;3111:26;;3237:15;;;3230:29;;;;3382:42;3363:62;;;3346:15;;;3339:87;;;;2469:17;3464:15;;3457:33;3631:3;3613:22;;;2255:1419::o;1856:924:10:-;1950:14;2007:18;2319:2;2313:9;2351:66;2336:82;;2468:1;2456:14;;2449:40;;;;2586:2;2574:15;;2567:35;;;;2738:2;2720:21;;;1856:924::o;2605:1613:9:-;2858:29;;;;;2916:17;;2969:24;;;;;2822:33;3043:38;;;;3537:27;;3506:29;;;3496:69;;;;3641:9;;1085:66;3664:26;;3758:15;;;3751:33;;;;3839:15;;;3832:40;3927:15;;;3920:49;4036:3;4024:16;;4017:55;4175:3;4157:22;;2605:1613;;;:::o;1808:4337:22:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:22;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:22;1808:4337;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;837:227:0:-;;;;;;;;;-1:-1:-1;837:227:0;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1283;;;;;;12561:3;12549:9;12540:7;12536:23;12532:33;12529:2;;;12578:1;12575;12568:12;12529:2;12613:31;;12664:18;12653:30;;12650:2;;;12696:1;12693;12686:12;12650:2;12716:87;12795:7;12786:6;12775:9;12771:22;12716:87;;;12706:97;;12592:217;12840:2;12858:53;12903:7;12894:6;12883:9;12879:22;12858:53;;;12848:63;;12819:98;12976:2;12965:9;12961:18;12948:32;13000:18;12992:6;12989:30;12986:2;;;13032:1;13029;13022:12;12986:2;13052:62;13106:7;13097:6;13086:9;13082:22;13052:62;;;13042:72;;12927:193;13179:2;13168:9;13164:18;13151:32;13203:18;13195:6;13192:30;13189:2;;;13235:1;13232;13225:12;13189:2;13255:78;13325:7;13316:6;13305:9;13301:22;13255:78;;;13245:88;;13130:209;13398:3;13387:9;13383:19;13370:33;13423:18;13415:6;13412:30;13409:2;;;13455:1;13452;13445:12;13409:2;13475:83;13550:7;13541:6;13530:9;13526:22;13475:83;;;13465:93;;13349:215;12523:1051;;;;;;;;;13581:1583;;;;;;;13912:3;13900:9;13891:7;13887:23;13883:33;13880:2;;;13929:1;13926;13919:12;13880:2;13964:31;;14015:18;14004:30;;14001:2;;;14047:1;14044;14037:12;14001:2;14067:87;14146:7;14137:6;14126:9;14122:22;14067:87;;;14057:97;;13943:217;14219:2;14208:9;14204:18;14191:32;14243:18;14235:6;14232:30;14229:2;;;14275:1;14272;14265:12;14229:2;14295:97;14384:7;14375:6;14364:9;14360:22;14295:97;;;14285:107;;14170:228;14429:2;14447:53;14492:7;14483:6;14472:9;14468:22;14447:53;;;14437:63;;14408:98;14565:2;14554:9;14550:18;14537:32;14589:18;14581:6;14578:30;14575:2;;;14621:1;14618;14611:12;14575:2;14641:62;14695:7;14686:6;14675:9;14671:22;14641:62;;;14631:72;;14516:193;14768:3;14757:9;14753:19;14740:33;14793:18;14785:6;14782:30;14779:2;;;14825:1;14822;14815:12;14779:2;14845:78;14915:7;14906:6;14895:9;14891:22;14845:78;;;14835:88;;14719:210;14988:3;14977:9;14973:19;14960:33;15013:18;15005:6;15002:30;14999:2;;;15045:1;15042;15035:12;14999:2;15065:83;15140:7;15131:6;15120:9;15116:22;15065:83;;;15055:93;;14939:215;13874:1290;;;;;;;;;15171:120;15254:31;15279:5;15254:31;;;15249:3;15242:44;15236:55;;;15298:120;15381:31;15406:5;15381:31;;15425:307;;15535:38;15567:5;15535:38;;;15590:6;15585:3;15578:19;15602:63;15658:6;15651:4;15646:3;15642:14;15635:4;15628:5;15624:16;15602:63;;;15697:29;15719:6;15697:29;;;15677:50;;;15690:4;15677:50;;15515:217;-1:-1;;;15515:217;16046:306;16211:2;16199:15;;16248:66;16243:2;16234:12;;16227:88;16343:2;16334:12;;16192:160;16361:306;16526:2;16514:15;;16563:66;16558:2;16549:12;;16542:88;16658:2;16649:12;;16507:160;16676:306;16841:2;16829:15;;16878:66;16873:2;16864:12;;16857:88;16973:2;16964:12;;16822:160;16991:306;17156:2;17144:15;;17193:66;17188:2;17179:12;;17172:88;17288:2;17279:12;;17137:160;17306:306;17471:2;17459:15;;17508:66;17503:2;17494:12;;17487:88;17603:2;17594:12;;17452:160;17621:306;17786:2;17774:15;;17823:66;17818:2;17809:12;;17802:88;17918:2;17909:12;;17767:160;17936:407;18101:2;18089:15;;18138:66;18133:2;18124:12;;18117:88;18239:66;18234:2;18225:12;;18218:88;18334:2;18325:12;;18082:261;18352:306;18517:2;18505:15;;18554:66;18549:2;18540:12;;18533:88;18649:2;18640:12;;18498:160;18667:306;18832:2;18820:15;;18869:66;18864:2;18855:12;;18848:88;18964:2;18955:12;;18813:160;18982:407;19147:2;19135:15;;19184:66;19179:2;19170:12;;19163:88;19285:66;19280:2;19271:12;;19264:88;19380:2;19371:12;;19128:261;19398:306;19563:2;19551:15;;19600:66;19595:2;19586:12;;19579:88;19695:2;19686:12;;19544:160;19713:306;19878:2;19866:15;;19915:66;19910:2;19901:12;;19894:88;20010:2;20001:12;;19859:160;20028:407;20193:2;20181:15;;20230:66;20225:2;20216:12;;20209:88;20331:66;20326:2;20317:12;;20310:88;20426:2;20417:12;;20174:261;20570:213;20688:2;20673:18;;20702:71;20677:9;20746:6;20702:71;;20790:213;20908:2;20893:18;;20922:71;20897:9;20966:6;20922:71;;21010:407;21201:2;21215:47;;;21186:18;;21276:131;21186:18;21276:131;;21424:407;21615:2;21629:47;;;21600:18;;21690:131;21600:18;21690:131;;21838:407;22029:2;22043:47;;;22014:18;;22104:131;22014:18;22104:131;;22252:407;22443:2;22457:47;;;22428:18;;22518:131;22428:18;22518:131;;22666:407;22857:2;22871:47;;;22842:18;;22932:131;22842:18;22932:131;;23080:407;23271:2;23285:47;;;23256:18;;23346:131;23256:18;23346:131;;23494:407;23685:2;23699:47;;;23670:18;;23760:131;23670:18;23760:131;;23908:407;24099:2;24113:47;;;24084:18;;24174:131;24084:18;24174:131;;24322:407;24513:2;24527:47;;;24498:18;;24588:131;24498:18;24588:131;;24736:407;24927:2;24941:47;;;24912:18;;25002:131;24912:18;25002:131;;25150:407;25341:2;25355:47;;;25326:18;;25416:131;25326:18;25416:131;;25564:407;25755:2;25769:47;;;25740:18;;25830:131;25740:18;25830:131;;25978:407;26169:2;26183:47;;;26154:18;;26244:131;26154:18;26244:131;;26392:707;26626:3;26611:19;;26641:71;26615:9;26685:6;26641:71;;;26723:72;26791:2;26780:9;26776:18;26767:6;26723:72;;;26843:9;26837:4;26833:20;26828:2;26817:9;26813:18;26806:48;26868:72;26935:4;26926:6;26868:72;;;26860:80;;26988:9;26982:4;26978:20;26973:2;26962:9;26958:18;26951:48;27013:76;27084:4;27075:6;27013:76;;;27005:84;26597:502;-1:-1;;;;;;26597:502;27106:256;27168:2;27162:9;27194:17;;;27269:18;27254:34;;27290:22;;;27251:62;27248:2;;;27326:1;27323;27316:12;27248:2;27342;27335:22;27146:216;;-1:-1;27146:216;27369:263;;27533:18;27525:6;27522:30;27519:2;;;27565:1;27562;27555:12;27519:2;-1:-1;27594:4;27582:17;;;27612:15;;27456:176;28468:254;;28607:18;28599:6;28596:30;28593:2;;;28639:1;28636;28629:12;28593:2;-1:-1;28712:4;28683;28660:17;;;;28679:9;28656:33;28702:15;;28530:192;28994:87;29064:12;;29048:33;29186:105;;29255:31;29280:5;29255:31;;29298:79;29367:5;29350:27;29384:128;29464:42;29453:54;;29436:76;29890:145;29971:6;29966:3;29961;29948:30;-1:-1;30027:1;30009:16;;30002:27;29941:94;30044:268;30109:1;30116:101;30130:6;30127:1;30124:13;30116:101;;;30197:11;;;30191:18;30178:11;;;30171:39;30152:2;30145:10;30116:101;;;30232:6;30229:1;30226:13;30223:2;;;30297:1;30288:6;30283:3;30279:16;30272:27;30223:2;30093:219;;;;;30320:97;30408:2;30388:14;30404:7;30384:28;;30368:49" + } + } + }, + "sources": { + "src/Coordinator.sol": { + "id": 0 + }, + "src/libs/LibConstants.sol": { + "id": 8 + }, + "src/interfaces/ITransactions.sol": { + "id": 7 + }, + "src/MixinSignatureValidator.sol": { + "id": 3 + }, + "@0x/contracts-utils/contracts/src/LibBytes.sol": { + "id": 22 + }, + "src/mixins/MSignatureValidator.sol": { + "id": 13 + }, + "src/interfaces/ISignatureValidator.sol": { + "id": 6 + }, + "src/MixinCoordinatorApprovalVerifier.sol": { + "id": 1 + }, + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { + "id": 19 + }, + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { + "id": 20 + }, + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { + "id": 18 + }, + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { + "id": 21 + }, + "src/libs/LibCoordinatorApproval.sol": { + "id": 9 + }, + "src/libs/LibEIP712Domain.sol": { + "id": 10 + }, + "src/libs/LibZeroExTransaction.sol": { + "id": 11 + }, + "src/mixins/MCoordinatorApprovalVerifier.sol": { + "id": 12 + }, + "src/interfaces/ICoordinatorApprovalVerifier.sol": { + "id": 4 + }, + "src/MixinCoordinatorCore.sol": { + "id": 2 + }, + "src/interfaces/ICoordinatorCore.sol": { + "id": 5 + } + }, + "sourceCodes": { + "src/Coordinator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibConstants.sol\";\nimport \"./MixinSignatureValidator.sol\";\nimport \"./MixinCoordinatorApprovalVerifier.sol\";\nimport \"./MixinCoordinatorCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract Coordinator is\n LibConstants,\n MixinSignatureValidator,\n MixinCoordinatorApprovalVerifier,\n MixinCoordinatorCore\n{\n constructor (address _exchange)\n public\n LibConstants(_exchange)\n {}\n}\n", + "src/libs/LibConstants.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ITransactions.sol\";\n\n\ncontract LibConstants {\n\n // solhint-disable-next-line var-name-mixedcase\n ITransactions internal EXCHANGE;\n\n constructor (address _exchange)\n public\n {\n EXCHANGE = ITransactions(_exchange);\n }\n}\n", + "src/interfaces/ITransactions.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\npragma solidity ^0.5.3;\n\n\ncontract ITransactions {\n\n /// @dev Executes an exchange method call in the context of signer.\n /// @param salt Arbitrary number to ensure uniqueness of transaction hash.\n /// @param signerAddress Address of transaction signer.\n /// @param data AbiV2 encoded calldata.\n /// @param signature Proof of signer transaction by signer.\n function executeTransaction(\n uint256 salt,\n address signerAddress,\n bytes calldata data,\n bytes calldata signature\n )\n external;\n}\n", + "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", + "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", + "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", + "src/MixinCoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibCoordinatorApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MCoordinatorApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinCoordinatorApprovalVerifier is\n LibExchangeSelectors,\n LibCoordinatorApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MCoordinatorApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidCoordinatorApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n txOrigin,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Verify that Ethereum tx signer is the same as the approved txOrigin\n require(\n tx.origin == txOrigin,\n \"INVALID_ORIGIN\"\n );\n\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i != signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n CoordinatorApproval memory approval = CoordinatorApproval({\n txOrigin: txOrigin,\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getCoordinatorApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i != ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n address approverAddress = orders[i].feeRecipientAddress;\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool success)\n {\n assembly {\n\n // Calculate byte length of array\n let arrayByteLen := mul(mload(addressArray), 32)\n // Calculate beginning of array contents\n let arrayContentsStart := add(addressArray, 32)\n // Calclulate end of array contents\n let arrayContentsEnd := add(arrayContentsStart, arrayByteLen)\n\n // Loop through array\n for {let i:= arrayContentsStart} lt(i, arrayContentsEnd) {i := add(i, 32)} {\n\n // Load array element\n let arrayElement := mload(i)\n\n // Return true if array element equals target\n if eq(target, arrayElement) {\n // Set success to true\n success := 1\n // Break loop\n i := arrayContentsEnd\n }\n }\n }\n return success;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool success, uint256 index)\n {\n assembly {\n\n // Calculate byte length of array\n let arrayByteLen := mul(mload(addressArray), 32)\n // Calculate beginning of array contents\n let arrayContentsStart := add(addressArray, 32)\n // Calclulate end of array contents\n let arrayContentsEnd := add(arrayContentsStart, arrayByteLen)\n\n // Loop through array\n for {let i:= arrayContentsStart} lt(i, arrayContentsEnd) {i := add(i, 32)} {\n\n // Load array element\n let arrayElement := mload(i)\n\n // Return true if array element equals target\n if eq(target, arrayElement) {\n // Set success and index\n success := 1\n index := div(i, 32)\n // Break loop\n i := arrayContentsEnd\n }\n }\n }\n return (success, index);\n }\n}\n", + "src/libs/LibCoordinatorApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibCoordinatorApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 Coordinator approval message\n // keccak256(abi.encodePacked(\n // \"CoordinatorApproval(\",\n // \"address txOrigin,\",\n // \"bytes32 transactionHash,\",\n // \"bytes transactionSignature,\",\n // \"uint256 approvalExpirationTimeSeconds\",\n // \")\"\n // ));\n bytes32 constant internal EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH = 0x2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e05;\n\n struct CoordinatorApproval {\n address txOrigin; // Required signer of Ethereum transaction that is submitting approval.\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage using the domain separator of this contract.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with the domain separator of this contract.\n function getCoordinatorApprovalHash(CoordinatorApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashCoordinatorApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage with no domain separator.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with no domain separator.\n function hashCoordinatorApproval(CoordinatorApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH;\n bytes memory transactionSignature = approval.transactionSignature;\n address txOrigin = approval.txOrigin;\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Compute hash of transaction signature\n let transactionSignatureHash := keccak256(add(transactionSignature, 32), mload(transactionSignature))\n \n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), txOrigin) // txOrigin\n mstore(add(memPtr, 64), transactionHash) // transactionHash\n mstore(add(memPtr, 96), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 128), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 160)\n }\n return result;\n }\n}\n", + "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n // keccak256(abi.encodePacked(\n // \"ZeroExTransaction(\",\n // \"uint256 salt,\",\n // \"address signerAddress,\",\n // \"bytes data\",\n // \")\"\n // ));\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = 0x213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c;\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes memory data = transaction.data;\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Compute hash of data\n let dataHash := keccak256(add(data, 32), mload(data))\n \n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/mixins/MCoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ICoordinatorApprovalVerifier.sol\";\n\n\ncontract MCoordinatorApprovalVerifier is\n ICoordinatorApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", + "src/interfaces/ICoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ICoordinatorApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidCoordinatorApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n", + "src/MixinCoordinatorCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./libs/LibConstants.sol\";\nimport \"./mixins/MCoordinatorApprovalVerifier.sol\";\nimport \"./interfaces/ICoordinatorCore.sol\";\n\n\ncontract MixinCoordinatorCore is\n LibConstants,\n MCoordinatorApprovalVerifier,\n ICoordinatorCore\n{\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n {\n // Validate that the 0x transaction has been approves by each feeRecipient\n assertValidCoordinatorApprovals(\n transaction,\n txOrigin,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n\n // Execute the transaction\n EXCHANGE.executeTransaction(\n transaction.salt,\n transaction.signerAddress,\n transaction.data,\n transactionSignature\n );\n }\n}\n", + "src/interfaces/ICoordinatorCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ICoordinatorCore {\n\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public;\n}\n" + }, + "sourceTreeHashHex": "0xcb9dc4e3588f7417807cc8b901a358efbad1d37ae61794e3031c8f00ac09d41e", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "evmVersion": "byzantium", + "remappings": [ + "@0x/contracts-utils=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} \ No newline at end of file diff --git a/python-packages/contract_artifacts/CoordinatorRegistry.json b/python-packages/contract_artifacts/CoordinatorRegistry.json new file mode 100644 index 0000000000..837e3b7046 --- /dev/null +++ b/python-packages/contract_artifacts/CoordinatorRegistry.json @@ -0,0 +1,122 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "CoordinatorRegistry", + "compilerOutput": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "name": "setCoordinatorEndpoint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "coordinatorOperator", + "type": "address" + } + ], + "name": "getCoordinatorEndpoint", + "outputs": [ + { + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "coordinatorOperator", + "type": "address" + }, + { + "indexed": false, + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "name": "CoordinatorEndpointSet", + "type": "event" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b506104b5806100206000396000f3fe608060405234801561001057600080fd5b5060043610610052577c010000000000000000000000000000000000000000000000000000000060003504635b2388be81146100575780636c90fedb1461006c575b600080fd5b61006a6100653660046102ff565b610095565b005b61007f61007a3660046102d9565b6100f0565b60405161008c91906103d8565b60405180910390f35b3360008181526020819052604090206100af9084846101c4565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e8184846040516100e3939291906103ae565b60405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156101b85780601f1061018d576101008083540402835291602001916101b8565b820191906000526020600020905b81548152906001019060200180831161019b57829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610223578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610250565b82800160010185558215610250579182015b82811115610250578235825591602001919060010190610235565b5061025c929150610260565b5090565b61027a91905b8082111561025c5760008155600101610266565b90565b600061028982356103ed565b9392505050565b600080601f830184136102a257600080fd5b50813567ffffffffffffffff8111156102ba57600080fd5b6020830191508360018202830111156102d257600080fd5b9250929050565b6000602082840312156102eb57600080fd5b60006102f7848461027d565b949350505050565b6000806020838503121561031257600080fd5b823567ffffffffffffffff81111561032957600080fd5b61033585828601610290565b92509250509250929050565b61034a816103ed565b82525050565b6000828452602084019350610366838584610417565b61036f83610453565b9093019392505050565b6000610384826103e9565b808452610398816020860160208601610423565b6103a181610453565b9093016020019392505050565b604081016103bc8286610341565b81810360208301526103cf818486610350565b95945050505050565b602080825281016102898184610379565b5190565b60006103f8826103fe565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561043e578181015183820152602001610426565b8381111561044d576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820d8fc8bc6ec7167e671f9f87937212d93c49d5fbe171bbdfa06c846e5ac76151b6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B5 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x52 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x5B2388BE DUP2 EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x6C90FEDB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A PUSH2 0x65 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FF JUMP JUMPDEST PUSH2 0x95 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAF SWAP1 DUP5 DUP5 PUSH2 0x1C4 JUMP JUMPDEST POP PUSH32 0xD060052768902F3EECB84B8EAE9D3A2608A1A9E60811A33968B46B8D552F266E DUP2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP7 AND ISZERO MUL ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x223 JUMPI DUP3 DUP1 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x250 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x250 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x250 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x235 JUMP JUMPDEST POP PUSH2 0x25C SWAP3 SWAP2 POP PUSH2 0x260 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x27A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x289 DUP3 CALLDATALOAD PUSH2 0x3ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP4 ADD DUP5 SGT PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F7 DUP5 DUP5 PUSH2 0x27D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x34A DUP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x366 DUP4 DUP6 DUP5 PUSH2 0x417 JUMP JUMPDEST PUSH2 0x36F DUP4 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x384 DUP3 PUSH2 0x3E9 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x398 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x423 JUMP JUMPDEST PUSH2 0x3A1 DUP2 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3BC DUP3 DUP7 PUSH2 0x341 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3CF DUP2 DUP5 DUP7 PUSH2 0x350 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x289 DUP2 DUP5 PUSH2 0x379 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8 DUP3 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x43E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xd8 0xfc DUP12 0xc6 0xec PUSH18 0x67E671F9F87937212D93C49D5FBE171BBDFA MOD 0xc8 0x46 0xe5 0xac PUSH23 0x151B6C6578706572696D656E74616CF500370000000000 ", + "sourceMap": "720:148:14:-;;;791:75;8:9:-1;5:2;;;30:1;27;20:12;5:2;791:75:14;720:148;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610052577c010000000000000000000000000000000000000000000000000000000060003504635b2388be81146100575780636c90fedb1461006c575b600080fd5b61006a6100653660046102ff565b610095565b005b61007f61007a3660046102d9565b6100f0565b60405161008c91906103d8565b60405180910390f35b3360008181526020819052604090206100af9084846101c4565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e8184846040516100e3939291906103ae565b60405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156101b85780601f1061018d576101008083540402835291602001916101b8565b820191906000526020600020905b81548152906001019060200180831161019b57829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610223578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610250565b82800160010185558215610250579182015b82811115610250578235825591602001919060010190610235565b5061025c929150610260565b5090565b61027a91905b8082111561025c5760008155600101610266565b90565b600061028982356103ed565b9392505050565b600080601f830184136102a257600080fd5b50813567ffffffffffffffff8111156102ba57600080fd5b6020830191508360018202830111156102d257600080fd5b9250929050565b6000602082840312156102eb57600080fd5b60006102f7848461027d565b949350505050565b6000806020838503121561031257600080fd5b823567ffffffffffffffff81111561032957600080fd5b61033585828601610290565b92509250509250929050565b61034a816103ed565b82525050565b6000828452602084019350610366838584610417565b61036f83610453565b9093019392505050565b6000610384826103e9565b808452610398816020860160208601610423565b6103a181610453565b9093016020019392505050565b604081016103bc8286610341565b81810360208301526103cf818486610350565b95945050505050565b602080825281016102898184610379565b5190565b60006103f8826103fe565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561043e578181015183820152602001610426565b8381111561044d576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820d8fc8bc6ec7167e671f9f87937212d93c49d5fbe171bbdfa06c846e5ac76151b6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x52 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x5B2388BE DUP2 EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x6C90FEDB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A PUSH2 0x65 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FF JUMP JUMPDEST PUSH2 0x95 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAF SWAP1 DUP5 DUP5 PUSH2 0x1C4 JUMP JUMPDEST POP PUSH32 0xD060052768902F3EECB84B8EAE9D3A2608A1A9E60811A33968B46B8D552F266E DUP2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP7 AND ISZERO MUL ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x223 JUMPI DUP3 DUP1 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x250 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x250 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x250 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x235 JUMP JUMPDEST POP PUSH2 0x25C SWAP3 SWAP2 POP PUSH2 0x260 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x27A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x289 DUP3 CALLDATALOAD PUSH2 0x3ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP4 ADD DUP5 SGT PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F7 DUP5 DUP5 PUSH2 0x27D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x34A DUP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x366 DUP4 DUP6 DUP5 PUSH2 0x417 JUMP JUMPDEST PUSH2 0x36F DUP4 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x384 DUP3 PUSH2 0x3E9 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x398 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x423 JUMP JUMPDEST PUSH2 0x3A1 DUP2 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3BC DUP3 DUP7 PUSH2 0x341 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3CF DUP2 DUP5 DUP7 PUSH2 0x350 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x289 DUP2 DUP5 PUSH2 0x379 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8 DUP3 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x43E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xd8 0xfc DUP12 0xc6 0xec PUSH18 0x67E671F9F87937212D93C49D5FBE171BBDFA MOD 0xc8 0x46 0xe5 0xac PUSH23 0x151B6C6578706572696D656E74616CF500370000000000 ", + "sourceMap": "720:148:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;720:148:14;;;;;;;;;;;;;;;;;;;;;;;;1086:287:15;;;;;;;;;:::i;:::-;;1502:212;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1086:287;1204:10;1174:27;1224:41;;;;;;;;;;:63;;1268:19;;1224:63;:::i;:::-;;1302:64;1325:19;1346;;1302:64;;;;;;;;;;;;;;;;;1086:287;;;:::o;1502:212::-;1666:41;;;:20;:41;;;;;;;;;;;;1659:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:33;;1659:48;;;1666:41;1659:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:212;;;:::o;720:148:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;720:148:14;;;-1:-1:-1;720:148:14;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;145:336;;;253:4;241:17;;237:27;-1:-1;227:2;;278:1;275;268:12;227:2;-1:-1;298:20;;338:18;327:30;;324:2;;;370:1;367;360:12;324:2;404:4;396:6;392:17;380:29;;454:3;447;439:6;435:16;425:8;421:31;418:40;415:2;;;471:1;468;461:12;415:2;220:261;;;;;;489:241;;593:2;581:9;572:7;568:23;564:32;561:2;;;609:1;606;599:12;561:2;644:1;661:53;706:7;686:9;661:53;;;651:63;555:175;-1:-1;;;;555:175;737:367;;;861:2;849:9;840:7;836:23;832:32;829:2;;;877:1;874;867:12;829:2;912:31;;963:18;952:30;;949:2;;;995:1;992;985:12;949:2;1023:65;1080:7;1071:6;1060:9;1056:22;1023:65;;;1005:83;;;;891:203;823:281;;;;;;1111:120;1194:31;1219:5;1194:31;;;1189:3;1182:44;1176:55;;;1261:273;;1381:6;1376:3;1369:19;1405:4;1400:3;1396:14;1389:21;;1435:43;1471:6;1466:3;1459:5;1435:43;;;1499:29;1521:6;1499:29;;;1490:39;;;;1363:171;-1:-1;;;1363:171;1541:310;;1653:39;1686:5;1653:39;;;1709:6;1704:3;1697:19;1721:63;1777:6;1770:4;1765:3;1761:14;1754:4;1747:5;1743:16;1721:63;;;1816:29;1838:6;1816:29;;;1796:50;;;1809:4;1796:50;;1633:218;-1:-1;;;1633:218;1858:432;2034:2;2019:18;;2048:71;2023:9;2092:6;2048:71;;;2167:9;2161:4;2157:20;2152:2;2141:9;2137:18;2130:48;2192:88;2275:4;2266:6;2258;2192:88;;;2184:96;2005:285;-1:-1;;;;;2005:285;2297:301;2435:2;2449:47;;;2420:18;;2510:78;2420:18;2574:6;2510:78;;2605:92;2680:12;;2664:33;2704:105;;2773:31;2798:5;2773:31;;;2762:42;2756:53;-1:-1;;2756:53;2816:128;2896:42;2885:54;;2868:76;3064:145;3145:6;3140:3;3135;3122:30;-1:-1;3201:1;3183:16;;3176:27;3115:94;3218:268;3283:1;3290:101;3304:6;3301:1;3298:13;3290:101;;;3371:11;;;3365:18;3352:11;;;3345:39;3326:2;3319:10;3290:101;;;3406:6;3403:1;3400:13;3397:2;;;3471:1;3462:6;3457:3;3453:16;3446:27;3397:2;3267:219;;;;;3494:97;3582:2;3562:14;3578:7;3558:28;;3542:49" + } + } + }, + "sources": { + "src/registry/CoordinatorRegistry.sol": { + "id": 14 + }, + "src/registry/MixinCoordinatorRegistryCore.sol": { + "id": 15 + }, + "src/registry/interfaces/ICoordinatorRegistryCore.sol": { + "id": 16 + } + }, + "sourceCodes": { + "src/registry/CoordinatorRegistry.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\nimport \"./MixinCoordinatorRegistryCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract CoordinatorRegistry is\n MixinCoordinatorRegistryCore\n{\n constructor ()\n public\n MixinCoordinatorRegistryCore()\n {}\n}\n", + "src/registry/MixinCoordinatorRegistryCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\nimport \"./interfaces/ICoordinatorRegistryCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract MixinCoordinatorRegistryCore is\n ICoordinatorRegistryCore\n{\n // mapping from `coordinatorOperator` -> `coordinatorEndpoint`\n mapping (address => string) internal coordinatorEndpoints;\n\n /// @dev Called by a Coordinator operator to set the endpoint of their Coordinator.\n /// @param coordinatorEndpoint endpoint of the Coordinator.\n function setCoordinatorEndpoint(string calldata coordinatorEndpoint) external {\n address coordinatorOperator = msg.sender;\n coordinatorEndpoints[coordinatorOperator] = coordinatorEndpoint;\n emit CoordinatorEndpointSet(coordinatorOperator, coordinatorEndpoint);\n }\n\n /// @dev Gets the endpoint for a Coordinator.\n /// @param coordinatorOperator operator of the Coordinator endpoint.\n function getCoordinatorEndpoint(address coordinatorOperator)\n external\n view\n returns (string memory coordinatorEndpoint)\n {\n return coordinatorEndpoints[coordinatorOperator];\n }\n}\n", + "src/registry/interfaces/ICoordinatorRegistryCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\n\n// solhint-disable no-empty-blocks\ncontract ICoordinatorRegistryCore\n{\n /// @dev Emitted when a Coordinator endpoint is set.\n event CoordinatorEndpointSet(\n address coordinatorOperator,\n string coordinatorEndpoint\n );\n\n /// @dev Called by a Coordinator operator to set the endpoint of their Coordinator.\n /// @param coordinatorEndpoint endpoint of the Coordinator.\n function setCoordinatorEndpoint(string calldata coordinatorEndpoint) external;\n\n /// @dev Gets the endpoint for a Coordinator.\n /// @param coordinatorOperator operator of the Coordinator endpoint.\n function getCoordinatorEndpoint(address coordinatorOperator)\n external\n view\n returns (string memory coordinatorEndpoint);\n}\n" + }, + "sourceTreeHashHex": "0x73b5157724c2624755d003dcb560ff5732c8ae78d44b1b99ec064e8b909f8f8c", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "evmVersion": "byzantium", + "remappings": [ + "@0x/contracts-utils=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} \ No newline at end of file From fc2625a0c01397456e16cc0e436bd53a67619009 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Wed, 20 Mar 2019 13:28:37 -0700 Subject: [PATCH 61/95] Remove TEC package artifacts --- contracts/tec/generated-artifacts/TEC.json | 351 ------------------ .../tec/generated-artifacts/TestLibs.json | 149 -------- .../tec/generated-artifacts/TestMixins.json | 284 -------------- contracts/tec/generated-wrappers/tec.ts | 302 --------------- contracts/tec/generated-wrappers/test_libs.ts | 148 -------- .../tec/generated-wrappers/test_mixins.ts | 192 ---------- 6 files changed, 1426 deletions(-) delete mode 100644 contracts/tec/generated-artifacts/TEC.json delete mode 100644 contracts/tec/generated-artifacts/TestLibs.json delete mode 100644 contracts/tec/generated-artifacts/TestMixins.json delete mode 100644 contracts/tec/generated-wrappers/tec.ts delete mode 100644 contracts/tec/generated-wrappers/test_libs.ts delete mode 100644 contracts/tec/generated-wrappers/test_mixins.ts diff --git a/contracts/tec/generated-artifacts/TEC.json b/contracts/tec/generated-artifacts/TEC.json deleted file mode 100644 index a1440f769c..0000000000 --- a/contracts/tec/generated-artifacts/TEC.json +++ /dev/null @@ -1,351 +0,0 @@ -{ - "schemaVersion": "2.0.0", - "contractName": "TEC", - "compilerOutput": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "hash", - "type": "bytes32" - }, - { - "name": "signature", - "type": "bytes" - } - ], - "name": "getSignerAddress", - "outputs": [ - { - "name": "signerAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "components": [ - { - "name": "makerAddress", - "type": "address" - }, - { - "name": "takerAddress", - "type": "address" - }, - { - "name": "feeRecipientAddress", - "type": "address" - }, - { - "name": "senderAddress", - "type": "address" - }, - { - "name": "makerAssetAmount", - "type": "uint256" - }, - { - "name": "takerAssetAmount", - "type": "uint256" - }, - { - "name": "makerFee", - "type": "uint256" - }, - { - "name": "takerFee", - "type": "uint256" - }, - { - "name": "expirationTimeSeconds", - "type": "uint256" - }, - { - "name": "salt", - "type": "uint256" - }, - { - "name": "makerAssetData", - "type": "bytes" - }, - { - "name": "takerAssetData", - "type": "bytes" - } - ], - "name": "orders", - "type": "tuple[]" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "assertValidTransactionOrdersApproval", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "assertValidTECApprovals", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EIP712_DOMAIN_HASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "executeTransaction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_exchange", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "0x60806040523480156200001157600080fd5b50604051602080620026558339810180604052620000339190810190620001f8565b604080517f454950373132446f6d61696e28000000000000000000000000000000000000006020808301919091527f737472696e67206e616d652c0000000000000000000000000000000000000000602d8301527f737472696e672076657273696f6e2c000000000000000000000000000000000060398301527f6164647265737320766572696679696e67436f6e74726163740000000000000060488301527f2900000000000000000000000000000000000000000000000000000000000000606183015282516042818403018152606283018085528151919092012060c2830190935260278082528493926200262e90608201398051602091820120604080518082018252600581527f312e302e3000000000000000000000000000000000000000000000000000000090840152805180840194909452838101919091527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060840152306080808501919091528151808503909101815260a09093019052815191012060005560018054600160a060020a031916600160a060020a03929092169190911790555062000240565b6000620001f182516200022d565b9392505050565b6000602082840312156200020b57600080fd5b6000620002198484620001e3565b949350505050565b600160a060020a031690565b60006200023a8262000221565b92915050565b6123de80620002506000396000f3fe608060405234801561001057600080fd5b5060043610610084576000357c0100000000000000000000000000000000000000000000000000000000900480636c42c8281161006d5780636c42c828146100c7578063e306f779146100da578063f50bb641146100ef57610084565b80630f7d8e391461008957806355fc233c146100b2575b600080fd5b61009c610097366004611b6a565b610102565b6040516100a9919061212b565b60405180910390f35b6100c56100c0366004611c50565b6104f7565b005b6100c56100d5366004611d3c565b610761565b6100e2610790565b6040516100a99190612139565b6100c56100fd366004611d3c565b610796565b6000808251111515610149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121e7565b60405180910390fd5b600061015483610840565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121d7565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff61090416565b905060006102c687602163ffffffff61090416565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff61090416565b9050600061041287602163ffffffff61090416565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b92915050565b60006105028661094f565b60408051600080825260208201909252845192935091905b818110156105ee576000868281518110151561053257fe5b9060200190602002015190506105466114fb565b5060408051606081018252868152602081018a905290810182905242821161059a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612197565b60006105a582610962565b905060006105ca828a878151811015156105bb57fe5b90602001906020020151610102565b90506105dc878263ffffffff61097016565b9650506001909301925061051a915050565b50865160005b818110156107555788516000908a908390811061060d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561063c5761074d565b6000898281518110151561064c57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106925761068a853263ffffffff61097016565b94505061074d565b60006106a4868363ffffffff610a3a16565b90508015156106df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612157565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806107125750610712863263ffffffff610a3a16565b151561074a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121f7565b50505b6001016105f4565b50505050505050505050565b60606107708560400151610ab2565b90506000815111156107895761078985828686866104f7565b5050505050565b60005481565b6107a284848484610761565b6001548451602086015160408088015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361080893909290918990600401612217565b600060405180830381600087803b15801561082257600080fd5b505af1158015610836573d6000803e3d6000fd5b5050505050505050565b600080825111151561087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121c7565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108ae57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610946576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121a7565b50016020015190565b60006104f161095d83610f6a565b611126565b60006104f161095d83611166565b8151604051606091849060208082028084018201929101828510156109c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612187565b828511156109db576109d48585836112f8565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610a0857fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b81811015610aa7578373ffffffffffffffffffffffffffffffffffffffff168582815181101515610a6e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415610a9f576001925050506104f1565b600101610a41565b506000949350505050565b60606000610ac6838263ffffffff6113bc16565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610b5957507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610ba557507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610c2f57610bb2611520565b8351610bc890859060049063ffffffff61142916565b806020019051610bdb9190810190611bbc565b604080516001808252818301909252919250816020015b610bfa611520565b815260200190600190039081610bf257905050925080836000815181101515610c1f57fe5b6020908102909101015250610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610cc057507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610d0c57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610d5857507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610da457507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610df057507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610e3c57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610e71578251610e5790849060049063ffffffff61142916565b806020019051610e6a9190810190611b2d565b9150610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610f6457610ec3611520565b610ecb611520565b8451610ee190869060049063ffffffff61142916565b806020019051610ef49190810190611bf1565b60408051600280825260608201909252929450909250816020015b610f17611520565b815260200190600190039081610f0f57905050935081846000815181101515610f3c57fe5b602090810290910101528351819085906001908110610f5757fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b6020831061109e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611061565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256123808239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b6020831061128657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611249565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611322576001816020036101000a0380198351168185511680821786525050506113b7565b8282141561132f576113b7565b828211156113695760208103905080820181840181515b82851015611361578451865260209586019590940193611346565b9052506113b7565b60208103905080820181840183515b818612156113b257825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283019290910190611378565b855250505b505050565b6000816004018351101515156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612207565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612167565b83518211156114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612177565b8282036040519080825280601f01601f1916602001820160405280156114cd576020820181803883390190505b5090506114ee6114dc826114f5565b846114e6876114f5565b0183516112f8565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114ee82356122f4565b60006114ee82516122f4565b6000601f8201831361160357600080fd5b813561161661161182612289565b612262565b81815260209384019390925082018360005b83811015611654578135860161163e8882611794565b8452506020928301929190910190600101611628565b5050505092915050565b6000601f8201831361166f57600080fd5b815161167d61161182612289565b81815260209384019390925082018360005b8381101561165457815186016116a58882611972565b845250602092830192919091019060010161168f565b6000601f820183136116cc57600080fd5b81356116da61161182612289565b81815260209384019390925082018360005b8381101561165457813586016117028882611829565b84525060209283019291909101906001016116ec565b6000601f8201831361172957600080fd5b813561173761161182612289565b9150818183526020840193506020810190508385602084028201111561175c57600080fd5b60005b8381101561165457816117728882611788565b845250602092830192919091019060010161175f565b60006114ee82356122ff565b6000601f820183136117a557600080fd5b81356117b3611611826122aa565b915080825260208301602083018583830111156117cf57600080fd5b6117da83828461231b565b50505092915050565b6000601f820183136117f457600080fd5b8151611802611611826122aa565b9150808252602083016020830185838301111561181e57600080fd5b6117da838284612327565b6000610180828403121561183c57600080fd5b611847610180612262565b9050600061185584846115da565b8252506020611866848483016115da565b602083015250604061187a848285016115da565b604083015250606061188e848285016115da565b60608301525060806118a284828501611788565b60808301525060a06118b684828501611788565b60a08301525060c06118ca84828501611788565b60c08301525060e06118de84828501611788565b60e0830152506101006118f384828501611788565b6101008301525061012061190984828501611788565b6101208301525061014082013567ffffffffffffffff81111561192b57600080fd5b61193784828501611794565b6101408301525061016082013567ffffffffffffffff81111561195957600080fd5b61196584828501611794565b6101608301525092915050565b6000610180828403121561198557600080fd5b611990610180612262565b9050600061199e84846115e6565b82525060206119af848483016115e6565b60208301525060406119c3848285016115e6565b60408301525060606119d7848285016115e6565b60608301525060806119eb84828501611b21565b60808301525060a06119ff84828501611b21565b60a08301525060c0611a1384828501611b21565b60c08301525060e0611a2784828501611b21565b60e083015250610100611a3c84828501611b21565b61010083015250610120611a5284828501611b21565b6101208301525061014082015167ffffffffffffffff811115611a7457600080fd5b611a80848285016117e3565b6101408301525061016082015167ffffffffffffffff811115611aa257600080fd5b611965848285016117e3565b600060608284031215611ac057600080fd5b611aca6060612262565b90506000611ad88484611788565b8252506020611ae9848483016115da565b602083015250604082013567ffffffffffffffff811115611b0957600080fd5b611b1584828501611794565b60408301525092915050565b60006114ee82516122ff565b600060208284031215611b3f57600080fd5b815167ffffffffffffffff811115611b5657600080fd5b611b628482850161165e565b949350505050565b60008060408385031215611b7d57600080fd5b6000611b898585611788565b925050602083013567ffffffffffffffff811115611ba657600080fd5b611bb285828601611794565b9150509250929050565b600060208284031215611bce57600080fd5b815167ffffffffffffffff811115611be557600080fd5b611b6284828501611972565b60008060408385031215611c0457600080fd5b825167ffffffffffffffff811115611c1b57600080fd5b611c2785828601611972565b925050602083015167ffffffffffffffff811115611c4457600080fd5b611bb285828601611972565b600080600080600060a08688031215611c6857600080fd5b853567ffffffffffffffff811115611c7f57600080fd5b611c8b88828901611aae565b955050602086013567ffffffffffffffff811115611ca857600080fd5b611cb4888289016116bb565b945050604086013567ffffffffffffffff811115611cd157600080fd5b611cdd88828901611794565b935050606086013567ffffffffffffffff811115611cfa57600080fd5b611d0688828901611718565b925050608086013567ffffffffffffffff811115611d2357600080fd5b611d2f888289016115f2565b9150509295509295909350565b60008060008060808587031215611d5257600080fd5b843567ffffffffffffffff811115611d6957600080fd5b611d7587828801611aae565b945050602085013567ffffffffffffffff811115611d9257600080fd5b611d9e87828801611794565b935050604085013567ffffffffffffffff811115611dbb57600080fd5b611dc787828801611718565b925050606085013567ffffffffffffffff811115611de457600080fd5b611df0878288016115f2565b91505092959194509250565b611e05816122f4565b82525050565b611e05816122ff565b6000611e1f826122f0565b808452611e33816020860160208601612327565b611e3c81612357565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611dfc565b602081016104f18284611e0b565b602080825281016104f181611e49565b602080825281016104f181611e79565b602080825281016104f181611ea9565b602080825281016104f181611ed9565b602080825281016104f181611f09565b602080825281016104f181611f39565b602080825281016104f181611f69565b602080825281016104f181611fbf565b602080825281016104f181611fef565b602080825281016104f181612045565b602080825281016104f181612075565b602080825281016104f1816120a5565b602080825281016104f1816120d5565b608081016122258287611e0b565b6122326020830186611dfc565b81810360408301526122448185611e14565b905081810360608301526122588184611e14565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561228157600080fd5b604052919050565b600067ffffffffffffffff8211156122a057600080fd5b5060209081020190565b600067ffffffffffffffff8211156122c157600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612302565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561234257818101518382015260200161232a565b83811115612351576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a723058207d14ce46d6a1f41fea9ab5b5291d1e35347eb8bb6b321fac4db6b2187d7a44836c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x2655 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x33 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x1F8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0x2D DUP4 ADD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0x39 DUP4 ADD MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0x48 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x61 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x42 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x62 DUP4 ADD DUP1 DUP6 MSTORE DUP2 MLOAD SWAP2 SWAP1 SWAP3 ADD KECCAK256 PUSH1 0xC2 DUP4 ADD SWAP1 SWAP4 MSTORE PUSH1 0x27 DUP1 DUP3 MSTORE DUP5 SWAP4 SWAP3 PUSH3 0x262E SWAP1 PUSH1 0x82 ADD CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE DUP1 MLOAD DUP1 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP4 ADD SWAP1 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x240 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1F1 DUP3 MLOAD PUSH3 0x22D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x219 DUP5 DUP5 PUSH3 0x1E3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x23A DUP3 PUSH3 0x221 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x23DE DUP1 PUSH3 0x250 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x6C42C828 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xF50BB641 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6A JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x212B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C50 JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x2139 JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x796 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x840 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x502 DUP7 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x532 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x546 PUSH2 0x14FB JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A5 DUP3 PUSH2 0x962 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5CA DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x5BB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x5DC DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x51A SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x755 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x60D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x63C JUMPI PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x64C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x692 JUMPI PUSH2 0x68A DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A4 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x712 JUMPI POP PUSH2 0x712 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21F7 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5F4 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x770 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x789 JUMPI PUSH2 0x789 DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4F7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x7A2 DUP5 DUP5 DUP5 DUP5 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP5 MLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 DUP1 DUP9 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x808 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2217 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x87E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21C7 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x8AE JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0xF6A JUMP JUMPDEST PUSH2 0x1126 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0x1166 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x9C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2187 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x9DB JUMPI PUSH2 0x9D4 DUP6 DUP6 DUP4 PUSH2 0x12F8 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA08 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAA7 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA6E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA9F JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xA41 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xAC6 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x13BC AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB59 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBA5 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xC2F JUMPI PUSH2 0xBB2 PUSH2 0x1520 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xBC8 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xBDB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xBFA PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBF2 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC1F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xCC0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD0C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD58 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDA4 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDF0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xE3C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xE71 JUMPI DUP3 MLOAD PUSH2 0xE57 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE6A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B2D JUMP JUMPDEST SWAP2 POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xF64 JUMPI PUSH2 0xEC3 PUSH2 0x1520 JUMP JUMPDEST PUSH2 0xECB PUSH2 0x1520 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xEE1 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xEF4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xF17 PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xF0F JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xF57 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x109E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1061 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x2380 DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1286 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1249 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1322 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x132F JUMPI PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1369 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1361 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x1346 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x13B2 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1378 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2207 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x1465 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2167 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2177 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x14EE PUSH2 0x14DC DUP3 PUSH2 0x14F5 JUMP JUMPDEST DUP5 PUSH2 0x14E6 DUP8 PUSH2 0x14F5 JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x12F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1603 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1616 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0x2262 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x163E DUP9 DUP3 PUSH2 0x1794 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1628 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x166F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x167D PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x16A5 DUP9 DUP3 PUSH2 0x1972 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x168F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1702 DUP9 DUP3 PUSH2 0x1829 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x16EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1737 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x175C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 PUSH2 0x1772 DUP9 DUP3 PUSH2 0x1788 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17B3 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x231B JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1802 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x181E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x2327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x183C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1847 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1855 DUP5 DUP5 PUSH2 0x15DA JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1866 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x187A DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x188E DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x18A2 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x18B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x18CA DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x18DE DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x18F3 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1909 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1937 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1985 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1990 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199E DUP5 DUP5 PUSH2 0x15E6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x19AF DUP5 DUP5 DUP4 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x19C3 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x19D7 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x19EB DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x19FF DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1A13 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1A27 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1A52 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A80 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1ACA PUSH1 0x60 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AD8 DUP5 DUP5 PUSH2 0x1788 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1AE9 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B15 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x165E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B89 DUP6 DUP6 PUSH2 0x1788 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C8B DUP9 DUP3 DUP10 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CB4 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CDD DUP9 DUP3 DUP10 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP9 DUP3 DUP10 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D2F DUP9 DUP3 DUP10 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1D52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D75 DUP8 DUP3 DUP9 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D9E DUP8 DUP3 DUP9 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC7 DUP8 DUP3 DUP9 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DF0 DUP8 DUP3 DUP9 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22F4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E1F DUP3 PUSH2 0x22F0 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E33 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2327 JUMP JUMPDEST PUSH2 0x1E3C DUP2 PUSH2 0x2357 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1E0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E79 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1EA9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F39 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F69 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FEF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2045 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2075 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20A5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2225 DUP3 DUP8 PUSH2 0x1E0B JUMP JUMPDEST PUSH2 0x2232 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1DFC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2244 DUP2 DUP6 PUSH2 0x1E14 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2258 DUP2 DUP5 PUSH2 0x1E14 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2302 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2342 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x232A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A723058207D14CE46 0xd6 LOG1 DELEGATECALL 0x1f 0xea SWAP11 0xb5 0xb5 0x29 SAR 0x1e CALLDATALOAD CALLVALUE PUSH31 0xB8BB6B321FAC4DB6B2187D7A44836C6578706572696D656E74616CF5003730 PUSH25 0x2050726F746F636F6C20547261646520457865637574696F6E KECCAK256 NUMBER PUSH16 0x6F7264696E61746F7200000000000000 ", - "sourceMap": "821:203:3:-;;;937:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;937:85:3;;;;;;;;;;;;;;;;;;;;;;1083:148:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;1083:148:9;;;;;;1073:159;;;;;;;1549:18;;;;;;;;;;1005:9:3;;1073:159:9;1549:18;;;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;;;;;;;;;;;;;1583:39;1454:214;;;;1652:4;1454:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1454:214:9;;;;;;1444:225;;;;;-1:-1:-1;1423:246:9;830:8:8;:35;;-1:-1:-1;;;;;;830:35:8;-1:-1:-1;;;;;830:35:8;;;;;;;;;;-1:-1:-1;821:203:3;;5:122:-1;;83:39;114:6;108:13;83:39;;;74:48;68:59;-1:-1;;;68:59;134:263;;249:2;237:9;228:7;224:23;220:32;217:2;;;265:1;262;255:12;217:2;300:1;317:64;373:7;353:9;317:64;;;307:74;211:186;-1:-1;;;;211:186;404:128;-1:-1;;;;;473:54;;456:76;539:105;;608:31;633:5;608:31;;;597:42;591:53;-1:-1;;591:53;;821:203:3;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b5060043610610084576000357c0100000000000000000000000000000000000000000000000000000000900480636c42c8281161006d5780636c42c828146100c7578063e306f779146100da578063f50bb641146100ef57610084565b80630f7d8e391461008957806355fc233c146100b2575b600080fd5b61009c610097366004611b6a565b610102565b6040516100a9919061212b565b60405180910390f35b6100c56100c0366004611c50565b6104f7565b005b6100c56100d5366004611d3c565b610761565b6100e2610790565b6040516100a99190612139565b6100c56100fd366004611d3c565b610796565b6000808251111515610149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121e7565b60405180910390fd5b600061015483610840565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121d7565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff61090416565b905060006102c687602163ffffffff61090416565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff61090416565b9050600061041287602163ffffffff61090416565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b92915050565b60006105028661094f565b60408051600080825260208201909252845192935091905b818110156105ee576000868281518110151561053257fe5b9060200190602002015190506105466114fb565b5060408051606081018252868152602081018a905290810182905242821161059a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612197565b60006105a582610962565b905060006105ca828a878151811015156105bb57fe5b90602001906020020151610102565b90506105dc878263ffffffff61097016565b9650506001909301925061051a915050565b50865160005b818110156107555788516000908a908390811061060d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561063c5761074d565b6000898281518110151561064c57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106925761068a853263ffffffff61097016565b94505061074d565b60006106a4868363ffffffff610a3a16565b90508015156106df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612157565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806107125750610712863263ffffffff610a3a16565b151561074a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121f7565b50505b6001016105f4565b50505050505050505050565b60606107708560400151610ab2565b90506000815111156107895761078985828686866104f7565b5050505050565b60005481565b6107a284848484610761565b6001548451602086015160408088015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361080893909290918990600401612217565b600060405180830381600087803b15801561082257600080fd5b505af1158015610836573d6000803e3d6000fd5b5050505050505050565b600080825111151561087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121c7565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108ae57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610946576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121a7565b50016020015190565b60006104f161095d83610f6a565b611126565b60006104f161095d83611166565b8151604051606091849060208082028084018201929101828510156109c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612187565b828511156109db576109d48585836112f8565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610a0857fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b81811015610aa7578373ffffffffffffffffffffffffffffffffffffffff168582815181101515610a6e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415610a9f576001925050506104f1565b600101610a41565b506000949350505050565b60606000610ac6838263ffffffff6113bc16565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610b5957507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610ba557507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610c2f57610bb2611520565b8351610bc890859060049063ffffffff61142916565b806020019051610bdb9190810190611bbc565b604080516001808252818301909252919250816020015b610bfa611520565b815260200190600190039081610bf257905050925080836000815181101515610c1f57fe5b6020908102909101015250610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610cc057507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610d0c57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610d5857507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610da457507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610df057507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610e3c57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610e71578251610e5790849060049063ffffffff61142916565b806020019051610e6a9190810190611b2d565b9150610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610f6457610ec3611520565b610ecb611520565b8451610ee190869060049063ffffffff61142916565b806020019051610ef49190810190611bf1565b60408051600280825260608201909252929450909250816020015b610f17611520565b815260200190600190039081610f0f57905050935081846000815181101515610f3c57fe5b602090810290910101528351819085906001908110610f5757fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b6020831061109e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611061565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256123808239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b6020831061128657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611249565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611322576001816020036101000a0380198351168185511680821786525050506113b7565b8282141561132f576113b7565b828211156113695760208103905080820181840181515b82851015611361578451865260209586019590940193611346565b9052506113b7565b60208103905080820181840183515b818612156113b257825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283019290910190611378565b855250505b505050565b6000816004018351101515156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612207565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612167565b83518211156114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612177565b8282036040519080825280601f01601f1916602001820160405280156114cd576020820181803883390190505b5090506114ee6114dc826114f5565b846114e6876114f5565b0183516112f8565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114ee82356122f4565b60006114ee82516122f4565b6000601f8201831361160357600080fd5b813561161661161182612289565b612262565b81815260209384019390925082018360005b83811015611654578135860161163e8882611794565b8452506020928301929190910190600101611628565b5050505092915050565b6000601f8201831361166f57600080fd5b815161167d61161182612289565b81815260209384019390925082018360005b8381101561165457815186016116a58882611972565b845250602092830192919091019060010161168f565b6000601f820183136116cc57600080fd5b81356116da61161182612289565b81815260209384019390925082018360005b8381101561165457813586016117028882611829565b84525060209283019291909101906001016116ec565b6000601f8201831361172957600080fd5b813561173761161182612289565b9150818183526020840193506020810190508385602084028201111561175c57600080fd5b60005b8381101561165457816117728882611788565b845250602092830192919091019060010161175f565b60006114ee82356122ff565b6000601f820183136117a557600080fd5b81356117b3611611826122aa565b915080825260208301602083018583830111156117cf57600080fd5b6117da83828461231b565b50505092915050565b6000601f820183136117f457600080fd5b8151611802611611826122aa565b9150808252602083016020830185838301111561181e57600080fd5b6117da838284612327565b6000610180828403121561183c57600080fd5b611847610180612262565b9050600061185584846115da565b8252506020611866848483016115da565b602083015250604061187a848285016115da565b604083015250606061188e848285016115da565b60608301525060806118a284828501611788565b60808301525060a06118b684828501611788565b60a08301525060c06118ca84828501611788565b60c08301525060e06118de84828501611788565b60e0830152506101006118f384828501611788565b6101008301525061012061190984828501611788565b6101208301525061014082013567ffffffffffffffff81111561192b57600080fd5b61193784828501611794565b6101408301525061016082013567ffffffffffffffff81111561195957600080fd5b61196584828501611794565b6101608301525092915050565b6000610180828403121561198557600080fd5b611990610180612262565b9050600061199e84846115e6565b82525060206119af848483016115e6565b60208301525060406119c3848285016115e6565b60408301525060606119d7848285016115e6565b60608301525060806119eb84828501611b21565b60808301525060a06119ff84828501611b21565b60a08301525060c0611a1384828501611b21565b60c08301525060e0611a2784828501611b21565b60e083015250610100611a3c84828501611b21565b61010083015250610120611a5284828501611b21565b6101208301525061014082015167ffffffffffffffff811115611a7457600080fd5b611a80848285016117e3565b6101408301525061016082015167ffffffffffffffff811115611aa257600080fd5b611965848285016117e3565b600060608284031215611ac057600080fd5b611aca6060612262565b90506000611ad88484611788565b8252506020611ae9848483016115da565b602083015250604082013567ffffffffffffffff811115611b0957600080fd5b611b1584828501611794565b60408301525092915050565b60006114ee82516122ff565b600060208284031215611b3f57600080fd5b815167ffffffffffffffff811115611b5657600080fd5b611b628482850161165e565b949350505050565b60008060408385031215611b7d57600080fd5b6000611b898585611788565b925050602083013567ffffffffffffffff811115611ba657600080fd5b611bb285828601611794565b9150509250929050565b600060208284031215611bce57600080fd5b815167ffffffffffffffff811115611be557600080fd5b611b6284828501611972565b60008060408385031215611c0457600080fd5b825167ffffffffffffffff811115611c1b57600080fd5b611c2785828601611972565b925050602083015167ffffffffffffffff811115611c4457600080fd5b611bb285828601611972565b600080600080600060a08688031215611c6857600080fd5b853567ffffffffffffffff811115611c7f57600080fd5b611c8b88828901611aae565b955050602086013567ffffffffffffffff811115611ca857600080fd5b611cb4888289016116bb565b945050604086013567ffffffffffffffff811115611cd157600080fd5b611cdd88828901611794565b935050606086013567ffffffffffffffff811115611cfa57600080fd5b611d0688828901611718565b925050608086013567ffffffffffffffff811115611d2357600080fd5b611d2f888289016115f2565b9150509295509295909350565b60008060008060808587031215611d5257600080fd5b843567ffffffffffffffff811115611d6957600080fd5b611d7587828801611aae565b945050602085013567ffffffffffffffff811115611d9257600080fd5b611d9e87828801611794565b935050604085013567ffffffffffffffff811115611dbb57600080fd5b611dc787828801611718565b925050606085013567ffffffffffffffff811115611de457600080fd5b611df0878288016115f2565b91505092959194509250565b611e05816122f4565b82525050565b611e05816122ff565b6000611e1f826122f0565b808452611e33816020860160208601612327565b611e3c81612357565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611dfc565b602081016104f18284611e0b565b602080825281016104f181611e49565b602080825281016104f181611e79565b602080825281016104f181611ea9565b602080825281016104f181611ed9565b602080825281016104f181611f09565b602080825281016104f181611f39565b602080825281016104f181611f69565b602080825281016104f181611fbf565b602080825281016104f181611fef565b602080825281016104f181612045565b602080825281016104f181612075565b602080825281016104f1816120a5565b602080825281016104f1816120d5565b608081016122258287611e0b565b6122326020830186611dfc565b81810360408301526122448185611e14565b905081810360608301526122588184611e14565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561228157600080fd5b604052919050565b600067ffffffffffffffff8211156122a057600080fd5b5060209081020190565b600067ffffffffffffffff8211156122c157600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612302565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561234257818101518382015260200161232a565b83811115612351576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a723058207d14ce46d6a1f41fea9ab5b5291d1e35347eb8bb6b321fac4db6b2187d7a44836c6578706572696d656e74616cf50037", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x6C42C828 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xF50BB641 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6A JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x212B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C50 JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x2139 JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x796 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x840 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x502 DUP7 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x532 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x546 PUSH2 0x14FB JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A5 DUP3 PUSH2 0x962 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5CA DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x5BB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x5DC DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x51A SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x755 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x60D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x63C JUMPI PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x64C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x692 JUMPI PUSH2 0x68A DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A4 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x712 JUMPI POP PUSH2 0x712 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21F7 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5F4 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x770 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x789 JUMPI PUSH2 0x789 DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4F7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x7A2 DUP5 DUP5 DUP5 DUP5 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP5 MLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 DUP1 DUP9 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x808 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2217 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x87E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21C7 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x8AE JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0xF6A JUMP JUMPDEST PUSH2 0x1126 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0x1166 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x9C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2187 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x9DB JUMPI PUSH2 0x9D4 DUP6 DUP6 DUP4 PUSH2 0x12F8 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA08 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAA7 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA6E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA9F JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xA41 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xAC6 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x13BC AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB59 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBA5 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xC2F JUMPI PUSH2 0xBB2 PUSH2 0x1520 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xBC8 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xBDB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xBFA PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBF2 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC1F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xCC0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD0C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD58 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDA4 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDF0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xE3C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xE71 JUMPI DUP3 MLOAD PUSH2 0xE57 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE6A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B2D JUMP JUMPDEST SWAP2 POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xF64 JUMPI PUSH2 0xEC3 PUSH2 0x1520 JUMP JUMPDEST PUSH2 0xECB PUSH2 0x1520 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xEE1 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xEF4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xF17 PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xF0F JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xF57 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x109E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1061 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x2380 DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1286 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1249 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1322 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x132F JUMPI PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1369 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1361 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x1346 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x13B2 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1378 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2207 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x1465 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2167 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2177 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x14EE PUSH2 0x14DC DUP3 PUSH2 0x14F5 JUMP JUMPDEST DUP5 PUSH2 0x14E6 DUP8 PUSH2 0x14F5 JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x12F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1603 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1616 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0x2262 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x163E DUP9 DUP3 PUSH2 0x1794 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1628 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x166F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x167D PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x16A5 DUP9 DUP3 PUSH2 0x1972 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x168F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1702 DUP9 DUP3 PUSH2 0x1829 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x16EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1737 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x175C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 PUSH2 0x1772 DUP9 DUP3 PUSH2 0x1788 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17B3 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x231B JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1802 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x181E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x2327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x183C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1847 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1855 DUP5 DUP5 PUSH2 0x15DA JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1866 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x187A DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x188E DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x18A2 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x18B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x18CA DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x18DE DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x18F3 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1909 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1937 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1985 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1990 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199E DUP5 DUP5 PUSH2 0x15E6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x19AF DUP5 DUP5 DUP4 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x19C3 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x19D7 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x19EB DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x19FF DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1A13 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1A27 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1A52 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A80 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1ACA PUSH1 0x60 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AD8 DUP5 DUP5 PUSH2 0x1788 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1AE9 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B15 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x165E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B89 DUP6 DUP6 PUSH2 0x1788 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C8B DUP9 DUP3 DUP10 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CB4 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CDD DUP9 DUP3 DUP10 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP9 DUP3 DUP10 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D2F DUP9 DUP3 DUP10 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1D52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D75 DUP8 DUP3 DUP9 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D9E DUP8 DUP3 DUP9 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC7 DUP8 DUP3 DUP9 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DF0 DUP8 DUP3 DUP9 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22F4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E1F DUP3 PUSH2 0x22F0 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E33 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2327 JUMP JUMPDEST PUSH2 0x1E3C DUP2 PUSH2 0x2357 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1E0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E79 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1EA9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F39 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F69 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FEF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2045 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2075 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20A5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2225 DUP3 DUP8 PUSH2 0x1E0B JUMP JUMPDEST PUSH2 0x2232 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1DFC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2244 DUP2 DUP6 PUSH2 0x1E14 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2258 DUP2 DUP5 PUSH2 0x1E14 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2302 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2342 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x232A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A723058207D14CE46 0xd6 LOG1 DELEGATECALL 0x1f 0xea SWAP11 0xb5 0xb5 0x29 SAR 0x1e CALLDATALOAD CALLVALUE PUSH31 0xB8BB6B321FAC4DB6B2187D7A44836C6578706572696D656E74616CF5003700 ", - "sourceMap": "821:203:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;821:203:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3439:2912:1;;;;;;;;;:::i;:::-;;1981:853;;;;;;;;;:::i;1339:33:9:-;;;:::i;:::-;;;;;;;;1500:745:2;;;;;;;;;:::i;988:2549:0:-;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:0;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:0;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:0;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:0;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:0;;;;;;-1:-1:-1;2510:20:0;;-1:-1:-1;;;;;;2510:20:0;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:0;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:0;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:0;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:0;3499:31;;;;;;;;;;;988:2549;;;;;:::o;3439:2912:1:-;3813:23;3839:31;3858:11;3839:18;:31::i;:::-;3973:16;;;3987:1;3973:16;;;;;;;;;4027:25;;3813:57;;-1:-1:-1;3973:16:1;4027:25;4062:1090;4086:16;4082:1;:20;4062:1090;;;4162:44;4209:29;4239:1;4209:32;;;;;;;;;;;;;;;;;;4162:79;;4255:27;;:::i;:::-;-1:-1:-1;4285:222:1;;;;;;;;;;;;;;;;;;;;;;;4695:15;4656:54;;4569:191;;;;;;;;;;;;;;4839:20;4862:28;4881:8;4862:18;:28::i;:::-;4839:51;;4904:29;4936:53;4953:12;4967:18;4986:1;4967:21;;;;;;;;;;;;;;;;;;4936:16;:53::i;:::-;4904:85;-1:-1:-1;5088:53:1;:23;4904:85;5088:53;:30;:53;:::i;:::-;5062:79;-1:-1:-1;;4104:3:1;;;;;-1:-1:-1;4062:1090:1;;-1:-1:-1;;4062:1090:1;;-1:-1:-1;5193:13:1;;5170:20;5216:1129;5240:12;5236:1;:16;5216:1129;;;5351:9;;5386:1;;5351:6;;5358:1;;5351:9;;;;;;;;;;;;;;:23;;;:37;;;5347:84;;;5408:8;;5347:84;5537:23;5563:6;5570:1;5563:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;5610:28:1;;;5629:9;5610:28;5606:160;;;5684:41;:23;5715:9;5684:41;:30;:41;:::i;:::-;5658:67;;5743:8;;;5606:160;5857:20;5880:49;:23;5913:15;5880:49;:32;:49;:::i;:::-;5857:72;;5968:15;5943:100;;;;;;;;;;;;;;;;6201:25;;;;:38;;6230:9;6201:38;;:85;;-1:-1:-1;6243:43:1;:23;6276:9;6243:43;:32;:43;:::i;:::-;6176:158;;;;;;;;;;;;;;;;5216:1129;;;5254:3;;5216:1129;;;;3439:2912;;;;;;;;;:::o;1981:853::-;2350:30;2383:38;2404:11;:16;;;2383:20;:38::i;:::-;2350:71;;2508:1;2492:6;:13;:17;2488:340;;;2593:224;2647:11;2676:6;2700:20;2738:29;2785:18;2593:36;:224::i;:::-;1981:853;;;;;:::o;1339:33:9:-;;;;:::o;1500:745:2:-;1855:167;1892:11;1917:20;1951:29;1994:18;1855:23;:167::i;:::-;2068:8;;2109:16;;2139:25;;;;2178:16;;;;;2068:170;;;;;:8;;;;;:27;;:170;;2109:16;;2139:25;;2208:20;;2068:170;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2068:170:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2068:170:2;;;;1500:745;;;;:::o;8315:448:19:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:19;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:19;13631:2;13729:13;13723:20;;13292:490::o;1514:406:11:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:10:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;1089:2103:18:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:18;;-1:-1:-1;;;;;1089:2103:18;;;;:::o;3431:342::-;3580:19;;3543:4;;;3609:136;3633:6;3629:1;:10;3609:136;;;3683:6;3664:25;;:12;3677:1;3664:15;;;;;;;;;;;;;;;;;;:25;;;3660:75;;;3716:4;3709:11;;;;;;3660:75;3641:3;;3609:136;;;-1:-1:-1;3761:5:18;;3431:342;-1:-1:-1;;;;3431:342:18:o;6563:1760:1:-;6659:30;6705:15;6723:18;:4;6705:15;6723:18;:15;:18;:::i;:::-;6705:36;-1:-1:-1;6768:31:1;;;6780:19;6768:31;;:87;;-1:-1:-1;6815:40:1;;;6827:28;6815:40;6768:87;:142;;;-1:-1:-1;6871:39:1;;;6883:27;6871:39;6768:142;6751:1543;;;6971:27;;:::i;:::-;7044:11;;7030:26;;7044:4;;7041:1;;7030:26;:10;:26;:::i;:::-;7002:102;;;;;;;;;;;;;;7127:23;;;7148:1;7127:23;;;;;;;;;6970:134;;-1:-1:-1;7127:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7118:32;;7176:5;7164:6;7171:1;7164:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6751:1543:1;;;7215:38;;;7227:26;7215:38;;:101;;-1:-1:-1;7269:47:1;;;7281:35;7269:47;7215:101;:163;;;-1:-1:-1;7332:46:1;;;7344:34;7332:46;7215:163;:217;;;-1:-1:-1;7394:38:1;;;7406:26;7394:38;7215:217;:280;;;-1:-1:-1;7448:47:1;;;7460:35;7448:47;7215:280;:335;;;-1:-1:-1;7511:39:1;;;7523:27;7511:39;7215:335;:399;;;-1:-1:-1;7566:48:1;;;7578:36;7566:48;7215:399;7198:1096;;;7763:11;;7749:26;;7763:4;;7760:1;;7749:26;:10;:26;:::i;:::-;7721:104;;;;;;;;;;;;;;7710:115;;7198:1096;;;7846:33;;;7858:21;7846:33;7842:452;;;7940:31;;:::i;:::-;7973:32;;:::i;:::-;8051:11;;8037:26;;8051:4;;8048:1;;8037:26;:10;:26;:::i;:::-;8009:118;;;;;;;;;;;;;;8189:23;;;8210:1;8189:23;;;;;;;;;7939:188;;-1:-1:-1;7939:188:1;;-1:-1:-1;8189:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8180:32;;8238:9;8226:6;8233:1;8226:9;;;;;;;;;;;;;;;;;;:21;8261:9;;8273:10;;8261:6;;8268:1;;8261:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7842:452:1;-1:-1:-1;6563:1760:1;;;:::o;2167:1395:11:-;823:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;823:146:11;;;;;;;813:157;;;;;;;;;2410:16;;;;2400:27;;2283:14;;813:157;2283:14;;823:146;;;;2400:27;;;;823:146;2400:27;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2400:27:11;;;;;;;;;;;;2525:16;;2575:25;;;;2999:26;;;3125:15;;;3118:29;;;;3270:42;3251:62;;;3234:15;;;3227:87;;;;-1:-1:-1;;;;3364:2:11;3352:15;;3345:33;;;;-1:-1:-1;3519:3:11;3501:22;;;2167:1395::o;1872:924:9:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:10:-;810:183;;;;;;;;;;;;;;;;;;;2349:14;;;;810:183;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:10;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2476:40:10;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3229:15;;;3222:40;;;;3316:15;;;3309:49;;;;3424:2;3412:15;;3405:54;;;;-1:-1:-1;;3562:3:10;3544:22;;;;2248:1357;-1:-1:-1;;;2248:1357:10:o;1808:4337:19:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:19;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:19;1808:4337;;;:::o;15595:687::-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:19;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:19;87:34:-1;135:17;;-1:-1;6890:20:19;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;821:203:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;;728:14;357:611;;;;;;;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1457;;;;;;12605:3;12593:9;12584:7;12580:23;12576:33;12573:2;;;12622:1;12619;12612:12;12573:2;12657:31;;12708:18;12697:30;;12694:2;;;12740:1;12737;12730:12;12694:2;12760:87;12839:7;12830:6;12819:9;12815:22;12760:87;;;12750:97;;12636:217;12912:2;12901:9;12897:18;12884:32;12936:18;12928:6;12925:30;12922:2;;;12968:1;12965;12958:12;12922:2;12988:97;13077:7;13068:6;13057:9;13053:22;12988:97;;;12978:107;;12863:228;13150:2;13139:9;13135:18;13122:32;13174:18;13166:6;13163:30;13160:2;;;13206:1;13203;13196:12;13160:2;13226:62;13280:7;13271:6;13260:9;13256:22;13226:62;;;13216:72;;13101:193;13353:2;13342:9;13338:18;13325:32;13377:18;13369:6;13366:30;13363:2;;;13409:1;13406;13399:12;13363:2;13429:78;13499:7;13490:6;13479:9;13475:22;13429:78;;;13419:88;;13304:209;13572:3;13561:9;13557:19;13544:33;13597:18;13589:6;13586:30;13583:2;;;13629:1;13626;13619:12;13583:2;13649:83;13724:7;13715:6;13704:9;13700:22;13649:83;;;13639:93;;13523:215;12567:1181;;;;;;;;;13755:1157;;;;;14008:3;13996:9;13987:7;13983:23;13979:33;13976:2;;;14025:1;14022;14015:12;13976:2;14060:31;;14111:18;14100:30;;14097:2;;;14143:1;14140;14133:12;14097:2;14163:87;14242:7;14233:6;14222:9;14218:22;14163:87;;;14153:97;;14039:217;14315:2;14304:9;14300:18;14287:32;14339:18;14331:6;14328:30;14325:2;;;14371:1;14368;14361:12;14325:2;14391:62;14445:7;14436:6;14425:9;14421:22;14391:62;;;14381:72;;14266:193;14518:2;14507:9;14503:18;14490:32;14542:18;14534:6;14531:30;14528:2;;;14574:1;14571;14564:12;14528:2;14594:78;14664:7;14655:6;14644:9;14640:22;14594:78;;;14584:88;;14469:209;14737:2;14726:9;14722:18;14709:32;14761:18;14753:6;14750:30;14747:2;;;14793:1;14790;14783:12;14747:2;14813:83;14888:7;14879:6;14868:9;14864:22;14813:83;;;14803:93;;14688:214;13970:942;;;;;;;;14919:120;15002:31;15027:5;15002:31;;;14997:3;14990:44;14984:55;;;15046:120;15129:31;15154:5;15129:31;;15173:307;;15283:38;15315:5;15283:38;;;15338:6;15333:3;15326:19;15350:63;15406:6;15399:4;15394:3;15390:14;15383:4;15376:5;15372:16;15350:63;;;15445:29;15467:6;15445:29;;;15425:50;;;15438:4;15425:50;;15263:217;-1:-1;;;15263:217;15794:306;15959:2;15947:15;;15996:66;15991:2;15982:12;;15975:88;16091:2;16082:12;;15940:160;16109:306;16274:2;16262:15;;16311:66;16306:2;16297:12;;16290:88;16406:2;16397:12;;16255:160;16424:306;16589:2;16577:15;;16626:66;16621:2;16612:12;;16605:88;16721:2;16712:12;;16570:160;16739:306;16904:2;16892:15;;16941:66;16936:2;16927:12;;16920:88;17036:2;17027:12;;16885:160;17054:306;17219:2;17207:15;;17256:66;17251:2;17242:12;;17235:88;17351:2;17342:12;;17200:160;17369:306;17534:2;17522:15;;17571:66;17566:2;17557:12;;17550:88;17666:2;17657:12;;17515:160;17684:407;17849:2;17837:15;;17886:66;17881:2;17872:12;;17865:88;17987:66;17982:2;17973:12;;17966:88;18082:2;18073:12;;17830:261;18100:306;18265:2;18253:15;;18302:66;18297:2;18288:12;;18281:88;18397:2;18388:12;;18246:160;18415:407;18580:2;18568:15;;18617:66;18612:2;18603:12;;18596:88;18718:66;18713:2;18704:12;;18697:88;18813:2;18804:12;;18561:261;18831:306;18996:2;18984:15;;19033:66;19028:2;19019:12;;19012:88;19128:2;19119:12;;18977:160;19146:306;19311:2;19299:15;;19348:66;19343:2;19334:12;;19327:88;19443:2;19434:12;;19292:160;19461:306;19626:2;19614:15;;19663:66;19658:2;19649:12;;19642:88;19758:2;19749:12;;19607:160;19776:407;19941:2;19929:15;;19978:66;19973:2;19964:12;;19957:88;20079:66;20074:2;20065:12;;20058:88;20174:2;20165:12;;19922:261;20318:213;20436:2;20421:18;;20450:71;20425:9;20494:6;20450:71;;20538:213;20656:2;20641:18;;20670:71;20645:9;20714:6;20670:71;;20758:407;20949:2;20963:47;;;20934:18;;21024:131;20934:18;21024:131;;21172:407;21363:2;21377:47;;;21348:18;;21438:131;21348:18;21438:131;;21586:407;21777:2;21791:47;;;21762:18;;21852:131;21762:18;21852:131;;22000:407;22191:2;22205:47;;;22176:18;;22266:131;22176:18;22266:131;;22414:407;22605:2;22619:47;;;22590:18;;22680:131;22590:18;22680:131;;22828:407;23019:2;23033:47;;;23004:18;;23094:131;23004:18;23094:131;;23242:407;23433:2;23447:47;;;23418:18;;23508:131;23418:18;23508:131;;23656:407;23847:2;23861:47;;;23832:18;;23922:131;23832:18;23922:131;;24070:407;24261:2;24275:47;;;24246:18;;24336:131;24246:18;24336:131;;24484:407;24675:2;24689:47;;;24660:18;;24750:131;24660:18;24750:131;;24898:407;25089:2;25103:47;;;25074:18;;25164:131;25074:18;25164:131;;25312:407;25503:2;25517:47;;;25488:18;;25578:131;25488:18;25578:131;;25726:407;25917:2;25931:47;;;25902:18;;25992:131;25902:18;25992:131;;26140:707;26374:3;26359:19;;26389:71;26363:9;26433:6;26389:71;;;26471:72;26539:2;26528:9;26524:18;26515:6;26471:72;;;26591:9;26585:4;26581:20;26576:2;26565:9;26561:18;26554:48;26616:72;26683:4;26674:6;26616:72;;;26608:80;;26736:9;26730:4;26726:20;26721:2;26710:9;26706:18;26699:48;26761:76;26832:4;26823:6;26761:76;;;26753:84;26345:502;-1:-1;;;;;;26345:502;26854:256;26916:2;26910:9;26942:17;;;27017:18;27002:34;;27038:22;;;26999:62;26996:2;;;27074:1;27071;27064:12;26996:2;27090;27083:22;26894:216;;-1:-1;26894:216;27117:263;;27281:18;27273:6;27270:30;27267:2;;;27313:1;27310;27303:12;27267:2;-1:-1;27342:4;27330:17;;;27360:15;;27204:176;28216:254;;28355:18;28347:6;28344:30;28341:2;;;28387:1;28384;28377:12;28341:2;-1:-1;28460:4;28431;28408:17;;;;28427:9;28404:33;28450:15;;28278:192;28742:87;28812:12;;28796:33;28934:105;;29003:31;29028:5;29003:31;;29046:79;29115:5;29098:27;29132:128;29212:42;29201:54;;29184:76;29638:145;29719:6;29714:3;29709;29696:30;-1:-1;29775:1;29757:16;;29750:27;29689:94;29792:268;29857:1;29864:101;29878:6;29875:1;29872:13;29864:101;;;29945:11;;;29939:18;29926:11;;;29919:39;29900:2;29893:10;29864:101;;;29980:6;29977:1;29974:13;29971:2;;;30045:1;30036:6;30031:3;30027:16;30020:27;29971:2;29841:219;;;;;30068:97;30156:2;30136:14;30152:7;30132:28;;30116:49" - } - } - }, - "sources": { - "src/TEC.sol": { - "id": 3 - }, - "src/libs/LibConstants.sol": { - "id": 8 - }, - "src/interfaces/ITransactions.sol": { - "id": 7 - }, - "src/MixinSignatureValidator.sol": { - "id": 0 - }, - "@0x/contracts-utils/contracts/src/LibBytes.sol": { - "id": 19 - }, - "src/mixins/MSignatureValidator.sol": { - "id": 12 - }, - "src/interfaces/ISignatureValidator.sol": { - "id": 4 - }, - "src/MixinTECApprovalVerifier.sol": { - "id": 1 - }, - "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { - "id": 16 - }, - "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { - "id": 17 - }, - "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { - "id": 15 - }, - "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { - "id": 18 - }, - "src/libs/LibTECApproval.sol": { - "id": 10 - }, - "src/libs/LibEIP712Domain.sol": { - "id": 9 - }, - "src/libs/LibZeroExTransaction.sol": { - "id": 11 - }, - "src/mixins/MTECApprovalVerifier.sol": { - "id": 13 - }, - "src/interfaces/ITECApprovalVerifier.sol": { - "id": 5 - }, - "src/MixinTECCore.sol": { - "id": 2 - }, - "src/interfaces/ITECCore.sol": { - "id": 6 - } - }, - "sourceCodes": { - "src/TEC.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibConstants.sol\";\nimport \"./MixinSignatureValidator.sol\";\nimport \"./MixinTECApprovalVerifier.sol\";\nimport \"./MixinTECCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract TEC is\n LibConstants,\n MixinSignatureValidator,\n MixinTECApprovalVerifier,\n MixinTECCore\n{\n constructor (address _exchange)\n public\n LibConstants(_exchange)\n {}\n}\n", - "src/libs/LibConstants.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ITransactions.sol\";\n\n\ncontract LibConstants {\n\n // solhint-disable-next-line var-name-mixedcase\n ITransactions internal EXCHANGE;\n\n constructor (address _exchange)\n public\n {\n EXCHANGE = ITransactions(_exchange);\n }\n}\n", - "src/interfaces/ITransactions.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\npragma solidity ^0.5.3;\n\n\ncontract ITransactions {\n\n /// @dev Executes an exchange method call in the context of signer.\n /// @param salt Arbitrary number to ensure uniqueness of transaction hash.\n /// @param signerAddress Address of transaction signer.\n /// @param data AbiV2 encoded calldata.\n /// @param signature Proof of signer transaction by signer.\n function executeTransaction(\n uint256 salt,\n address signerAddress,\n bytes calldata data,\n bytes calldata signature\n )\n external;\n}\n", - "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", - "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", - "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", - "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", - "src/MixinTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibTECApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinTECApprovalVerifier is\n LibExchangeSelectors,\n LibTECApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MTECApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i < signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n TECApproval memory approval = TECApproval({\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getTECApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i < ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n address approverAddress = orders[i].feeRecipientAddress;\n if (approverAddress == tx.origin) {\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n\n // The Ethereum transaction signer must be the 0x transaction signer or an approver of the 0x transaction\n require(\n transaction.signerAddress == tx.origin || approvalSignerAddresses.contains(tx.origin),\n \"INVALID_SENDER\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", - "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", - "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", - "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return true;\n }\n }\n return false;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool, uint256)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return (true, i);\n }\n }\n return (false, 0);\n }\n}\n", - "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/mixins/MTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ITECApprovalVerifier.sol\";\n\n\ncontract MTECApprovalVerifier is\n ITECApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", - "src/interfaces/ITECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n", - "src/MixinTECCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./libs/LibConstants.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\nimport \"./interfaces/ITECCore.sol\";\n\n\ncontract MixinTECCore is\n LibConstants,\n MTECApprovalVerifier,\n ITECCore\n{\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n {\n // Validate that the 0x transaction has been approves by each feeRecipient\n assertValidTECApprovals(\n transaction,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n\n // Execute the transaction\n EXCHANGE.executeTransaction(\n transaction.salt,\n transaction.signerAddress,\n transaction.data,\n transactionSignature\n );\n }\n}\n", - "src/interfaces/ITECCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECCore {\n\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public;\n}\n" - }, - "sourceTreeHashHex": "0x7a77910e6871475307d987db7acdd08f6297afd28c030b873e402a238a3ecbb8", - "compiler": { - "name": "solc", - "version": "0.5.3+commit.10d17f24.Linux.g++", - "settings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode.object", - "evm.bytecode.sourceMap", - "evm.deployedBytecode.object", - "evm.deployedBytecode.sourceMap" - ] - } - }, - "remappings": [ - "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", - "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" - ] - } - }, - "networks": {} -} \ No newline at end of file diff --git a/contracts/tec/generated-artifacts/TestLibs.json b/contracts/tec/generated-artifacts/TestLibs.json deleted file mode 100644 index 432f60dd7e..0000000000 --- a/contracts/tec/generated-artifacts/TestLibs.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "schemaVersion": "2.0.0", - "contractName": "TestLibs", - "compilerOutput": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - } - ], - "name": "publicGetTransactionHash", - "outputs": [ - { - "name": "transactionHash", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "transactionHash", - "type": "bytes32" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256" - } - ], - "name": "approval", - "type": "tuple" - } - ], - "name": "publicGetTECApprovalHash", - "outputs": [ - { - "name": "approvalHash", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EIP712_DOMAIN_HASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "0x60806040526200001060a062000260565b604051602081830303815290604052805190602001206060604051908101604052806027815260200162000a89602791398051602091820120604080518082018252600581527f312e302e300000000000000000000000000000000000000000000000000000009084015251620000ad93927f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c9130910162000210565b60408051601f198184030181529190528051602090910120600055620002af565b620000e3620000dd82620002ac565b620002ac565b82525050565b6000620000f8600c83620002a7565b7f737472696e67206e616d652c00000000000000000000000000000000000000008152600c0192915050565b600062000133601983620002a7565b7f6164647265737320766572696679696e67436f6e747261637400000000000000815260190192915050565b60006200016e600183620002a7565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000620001a9600f83620002a7565b7f737472696e672076657273696f6e2c00000000000000000000000000000000008152600f0192915050565b6000620001e4600d83620002a7565b7f454950373132446f6d61696e28000000000000000000000000000000000000008152600d0192915050565b60006200021e8287620000ce565b602082019150620002308286620000ce565b602082019150620002428285620000ce565b602082019150620002548284620000ce565b50602001949350505050565b60006200026d82620001d5565b91506200027a82620000e9565b915062000287826200019a565b9150620002948262000124565b9150620002a1826200015f565b92915050565b919050565b90565b6107ca80620002bf6000396000f3fe608060405234801561001057600080fd5b506004361061005d577c010000000000000000000000000000000000000000000000000000000060003504637b837ad18114610062578063c27af17d1461008b578063e306f7791461009e575b600080fd5b6100756100703660046103a6565b6100a6565b60405161008291906106af565b60405180910390f35b610075610099366004610369565b6100b7565b6100756100c2565b60006100b1826100c8565b92915050565b60006100b1826100db565b60005481565b60006100b16100d6836100e9565b61016f565b60006100b16100d6836101af565b6000806040516020016100fb9061064c565b604051602081830303815290604052805190602001209050600083604001516040516101279190610640565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101c190610683565b604051602081830303815290604052805190602001209050600083602001516040516101ed9190610640565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b60006102288235610736565b9392505050565b60006102288235610733565b6000601f8201831361024c57600080fd5b813561025f61025a826106e4565b6106bd565b9150808252602083016020830185838301111561027b57600080fd5b610286838284610754565b50505092915050565b6000606082840312156102a157600080fd5b6102ab60606106bd565b905060006102b9848461022f565b825250602082013567ffffffffffffffff8111156102d657600080fd5b6102e28482850161023b565b60208301525060406102f68482850161022f565b60408301525092915050565b60006060828403121561031457600080fd5b61031e60606106bd565b9050600061032c848461022f565b825250602061033d8484830161021c565b602083015250604082013567ffffffffffffffff81111561035d57600080fd5b6102f68482850161023b565b60006020828403121561037b57600080fd5b813567ffffffffffffffff81111561039257600080fd5b61039e8482850161028f565b949350505050565b6000602082840312156103b857600080fd5b813567ffffffffffffffff8111156103cf57600080fd5b61039e84828501610302565b6103e481610733565b82525050565b60006103f58261072a565b6103ff818561072e565b935061040f818560208601610760565b9290920192915050565b600061042660128361072e565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b600061045f601b8361072e565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061049860018361072e565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104d1600c8361072e565b7f544543417070726f76616c2800000000000000000000000000000000000000008152600c0192915050565b600061050a600d8361072e565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610543600a8361072e565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b600061057c60258361072e565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105db60168361072e565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b600061061460188361072e565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061022882846103ea565b600061065782610419565b9150610662826104fd565b915061066d826105ce565b915061067882610536565b91506100b18261048b565b600061068e826104c4565b915061069982610607565b91506106a482610452565b91506106788261056f565b602081016100b182846103db565b60405181810167ffffffffffffffff811182821017156106dc57600080fd5b604052919050565b600067ffffffffffffffff8211156106fb57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff82166100b1565b82818337506000910152565b60005b8381101561077b578181015183820152602001610763565b8381111561078a576000848401525b5050505056fea265627a7a72305820e79099828fe54268e059e14b945d673ffe00fbab54c6062a3ae99557212dffc96c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH3 0x10 PUSH1 0xA0 PUSH3 0x260 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA89 PUSH1 0x27 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE MLOAD PUSH3 0xAD SWAP4 SWAP3 PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C SWAP2 ADDRESS SWAP2 ADD PUSH3 0x210 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH3 0x2AF JUMP JUMPDEST PUSH3 0xE3 PUSH3 0xDD DUP3 PUSH3 0x2AC JUMP JUMPDEST PUSH3 0x2AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xF8 PUSH1 0xC DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x133 PUSH1 0x19 DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 DUP2 MSTORE PUSH1 0x19 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x16E PUSH1 0x1 DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1A9 PUSH1 0xF DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xF ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1E4 PUSH1 0xD DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x21E DUP3 DUP8 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x230 DUP3 DUP7 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x242 DUP3 DUP6 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x254 DUP3 DUP5 PUSH3 0xCE JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26D DUP3 PUSH3 0x1D5 JUMP JUMPDEST SWAP2 POP PUSH3 0x27A DUP3 PUSH3 0xE9 JUMP JUMPDEST SWAP2 POP PUSH3 0x287 DUP3 PUSH3 0x19A JUMP JUMPDEST SWAP2 POP PUSH3 0x294 DUP3 PUSH3 0x124 JUMP JUMPDEST SWAP2 POP PUSH3 0x2A1 DUP3 PUSH3 0x15F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7CA DUP1 PUSH3 0x2BF PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5D JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x7B837AD1 DUP2 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC27AF17D EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x9E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75 PUSH2 0x70 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x6AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x75 PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x369 JUMP JUMPDEST PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x75 PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFB SWAP1 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD PUSH1 0x20 DUP1 DUP10 ADD MLOAD SWAP7 DUP6 MSTORE DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C1 SWAP1 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD SWAP7 DUP3 ADD MLOAD SWAP5 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x733 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F PUSH2 0x25A DUP3 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x6BD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP4 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AB PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31E PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x32C DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x33D DUP5 DUP5 DUP4 ADD PUSH2 0x21C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x28F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP3 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3FF DUP2 DUP6 PUSH2 0x72E JUMP JUMPDEST SWAP4 POP PUSH2 0x40F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x760 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426 PUSH1 0x12 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45F PUSH1 0x1B DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498 PUSH1 0x1 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D1 PUSH1 0xC DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A PUSH1 0xD DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x543 PUSH1 0xA DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57C PUSH1 0x25 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E7432353620617070726F76616C45787069726174696F6E54696D655365 DUP2 MSTORE PUSH32 0x636F6E6473000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x25 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DB PUSH1 0x16 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x614 PUSH1 0x18 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x657 DUP3 PUSH2 0x419 JUMP JUMPDEST SWAP2 POP PUSH2 0x662 DUP3 PUSH2 0x4FD JUMP JUMPDEST SWAP2 POP PUSH2 0x66D DUP3 PUSH2 0x5CE JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP2 POP PUSH2 0xB1 DUP3 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68E DUP3 PUSH2 0x4C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x699 DUP3 PUSH2 0x607 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A4 DUP3 PUSH2 0x452 JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB1 DUP3 DUP5 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x77B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x763 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x78A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xe7 SWAP1 SWAP10 DUP3 DUP16 0xe5 TIMESTAMP PUSH9 0xE059E14B945D673FFE STOP 0xfb 0xab SLOAD 0xc6 MOD 0x2a GASPRICE 0xe9 SWAP6 JUMPI 0x21 0x2d SELFDESTRUCT 0xc9 PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ADDRESS PUSH25 0x2050726F746F636F6C20547261646520457865637574696F6E KECCAK256 NUMBER PUSH16 0x6F7264696E61746F7200000000000000 ", - "sourceMap": "731:1174:3:-;;;1083:148:0;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1083:148:0;;;1073:159;;;;;;1549:18;;;;;;;;;;;;;;;;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;1583:39;;1652:4;;1454:214;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1454:214:0;;;1444:225;;49:4:-1;1444:225:0;;;;1423:18;:246;731:1174:3;;5:159:-1;106:52;126:31;151:5;126:31;;;106:52;;;101:3;94:65;88:76;;;172:400;;350:85;432:2;427:3;350:85;;;468:66;448:87;;563:2;554:12;;336:236;-1:-1;;336:236;581:400;;759:85;841:2;836:3;759:85;;;877:66;857:87;;972:2;963:12;;745:236;-1:-1;;745:236;990:398;;1168:84;1250:1;1245:3;1168:84;;;1285:66;1265:87;;1380:1;1371:11;;1154:234;-1:-1;;1154:234;1397:400;;1575:85;1657:2;1652:3;1575:85;;;1693:66;1673:87;;1788:2;1779:12;;1561:236;-1:-1;;1561:236;1806:400;;1984:85;2066:2;2061:3;1984:85;;;2102:66;2082:87;;2197:2;2188:12;;1970:236;-1:-1;;1970:236;2380:661;;2583:75;2654:3;2645:6;2583:75;;;2680:2;2675:3;2671:12;2664:19;;2694:75;2765:3;2756:6;2694:75;;;2791:2;2786:3;2782:12;2775:19;;2805:75;2876:3;2867:6;2805:75;;;2902:2;2897:3;2893:12;2886:19;;2916:75;2987:3;2978:6;2916:75;;;-1:-1;3013:2;3004:12;;2571:470;-1:-1;;;;2571:470;3048:1440;;3651:148;3795:3;3651:148;;;3644:155;;3817:148;3961:3;3817:148;;;3810:155;;3983:148;4127:3;3983:148;;;3976:155;;4149:148;4293:3;4149:148;;;4142:155;;4315:148;4459:3;4315:148;;;4308:155;3632:856;-1:-1;;3632:856;4496:145;4632:3;4610:31;-1:-1;4610:31;4649:79;4718:5;4701:27;;731:1174:3;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b506004361061005d577c010000000000000000000000000000000000000000000000000000000060003504637b837ad18114610062578063c27af17d1461008b578063e306f7791461009e575b600080fd5b6100756100703660046103a6565b6100a6565b60405161008291906106af565b60405180910390f35b610075610099366004610369565b6100b7565b6100756100c2565b60006100b1826100c8565b92915050565b60006100b1826100db565b60005481565b60006100b16100d6836100e9565b61016f565b60006100b16100d6836101af565b6000806040516020016100fb9061064c565b604051602081830303815290604052805190602001209050600083604001516040516101279190610640565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101c190610683565b604051602081830303815290604052805190602001209050600083602001516040516101ed9190610640565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b60006102288235610736565b9392505050565b60006102288235610733565b6000601f8201831361024c57600080fd5b813561025f61025a826106e4565b6106bd565b9150808252602083016020830185838301111561027b57600080fd5b610286838284610754565b50505092915050565b6000606082840312156102a157600080fd5b6102ab60606106bd565b905060006102b9848461022f565b825250602082013567ffffffffffffffff8111156102d657600080fd5b6102e28482850161023b565b60208301525060406102f68482850161022f565b60408301525092915050565b60006060828403121561031457600080fd5b61031e60606106bd565b9050600061032c848461022f565b825250602061033d8484830161021c565b602083015250604082013567ffffffffffffffff81111561035d57600080fd5b6102f68482850161023b565b60006020828403121561037b57600080fd5b813567ffffffffffffffff81111561039257600080fd5b61039e8482850161028f565b949350505050565b6000602082840312156103b857600080fd5b813567ffffffffffffffff8111156103cf57600080fd5b61039e84828501610302565b6103e481610733565b82525050565b60006103f58261072a565b6103ff818561072e565b935061040f818560208601610760565b9290920192915050565b600061042660128361072e565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b600061045f601b8361072e565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061049860018361072e565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104d1600c8361072e565b7f544543417070726f76616c2800000000000000000000000000000000000000008152600c0192915050565b600061050a600d8361072e565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610543600a8361072e565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b600061057c60258361072e565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105db60168361072e565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b600061061460188361072e565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061022882846103ea565b600061065782610419565b9150610662826104fd565b915061066d826105ce565b915061067882610536565b91506100b18261048b565b600061068e826104c4565b915061069982610607565b91506106a482610452565b91506106788261056f565b602081016100b182846103db565b60405181810167ffffffffffffffff811182821017156106dc57600080fd5b604052919050565b600067ffffffffffffffff8211156106fb57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff82166100b1565b82818337506000910152565b60005b8381101561077b578181015183820152602001610763565b8381111561078a576000848401525b5050505056fea265627a7a72305820e79099828fe54268e059e14b945d673ffe00fbab54c6062a3ae99557212dffc96c6578706572696d656e74616cf50037", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5D JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x7B837AD1 DUP2 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC27AF17D EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x9E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75 PUSH2 0x70 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x6AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x75 PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x369 JUMP JUMPDEST PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x75 PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFB SWAP1 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD PUSH1 0x20 DUP1 DUP10 ADD MLOAD SWAP7 DUP6 MSTORE DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C1 SWAP1 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD SWAP7 DUP3 ADD MLOAD SWAP5 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x733 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F PUSH2 0x25A DUP3 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x6BD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP4 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AB PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31E PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x32C DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x33D DUP5 DUP5 DUP4 ADD PUSH2 0x21C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x28F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP3 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3FF DUP2 DUP6 PUSH2 0x72E JUMP JUMPDEST SWAP4 POP PUSH2 0x40F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x760 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426 PUSH1 0x12 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45F PUSH1 0x1B DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498 PUSH1 0x1 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D1 PUSH1 0xC DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A PUSH1 0xD DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x543 PUSH1 0xA DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57C PUSH1 0x25 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E7432353620617070726F76616C45787069726174696F6E54696D655365 DUP2 MSTORE PUSH32 0x636F6E6473000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x25 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DB PUSH1 0x16 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x614 PUSH1 0x18 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x657 DUP3 PUSH2 0x419 JUMP JUMPDEST SWAP2 POP PUSH2 0x662 DUP3 PUSH2 0x4FD JUMP JUMPDEST SWAP2 POP PUSH2 0x66D DUP3 PUSH2 0x5CE JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP2 POP PUSH2 0xB1 DUP3 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68E DUP3 PUSH2 0x4C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x699 DUP3 PUSH2 0x607 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A4 DUP3 PUSH2 0x452 JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB1 DUP3 DUP5 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x77B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x763 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x78A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xe7 SWAP1 SWAP10 DUP3 DUP16 0xe5 TIMESTAMP PUSH9 0xE059E14B945D673FFE STOP 0xfb 0xab SLOAD 0xc6 MOD 0x2a GASPRICE 0xe9 SWAP6 JUMPI 0x21 0x2d SELFDESTRUCT 0xc9 PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ", - "sourceMap": "731:1174:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;731:1174:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:244;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1150:223;;;;;;;;;:::i;1339:33:0:-;;;:::i;1659:244:3:-;1776:23;1833:31;1852:11;1833:18;:31::i;:::-;1815:49;1659:244;-1:-1:-1;;1659:244:3:o;1150:223::-;1258:20;1309:28;1328:8;1309:18;:28::i;1339:33:0:-;;;;:::o;1514:406:2:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:1:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;2167:1395:2:-;2283:14;2313:18;823:146;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;823:146:2;;;813:157;;;;;;2313:58;;2381:16;2410:11;:16;;;2400:27;;;;;;;;;;;;;;;;;2525:16;;2575:25;;;;;2999:26;;;3125:15;;3118:29;3270:42;3251:62;;;3234:15;;;3227:87;3364:2;3352:15;;3345:33;;;;-1:-1:-1;3519:3:2;3501:22;;;-1:-1:-1;2167:1395:2;;;:::o;1872:924:0:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:1:-;2349:14;2379:18;810:183;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:1;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3241:2;3229:15;;3222:40;;;;3316:15;;3309:49;;;;-1:-1:-1;3424:2:1;3412:15;;3405:54;-1:-1:-1;3562:3:1;3544:22;;;2248:1357::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;130:118;;197:46;235:6;222:20;197:46;;256:432;;346:4;334:17;;330:27;-1:-1;320:2;;371:1;368;361:12;320:2;408:6;395:20;430:60;445:44;482:6;445:44;;;430:60;;;421:69;;510:6;503:5;496:21;546:4;538:6;534:17;579:4;572:5;568:16;614:3;605:6;600:3;596:16;593:25;590:2;;;631:1;628;621:12;590:2;641:41;675:6;670:3;665;641:41;;;313:375;;;;;;;;736:755;;852:4;840:9;835:3;831:19;827:30;824:2;;;870:1;867;860:12;824:2;888:20;903:4;888:20;;;879:29;-1:-1;969:1;1000:49;1045:3;1025:9;1000:49;;;976:74;;-1:-1;1155:2;1140:18;;1127:32;1179:18;1168:30;;1165:2;;;1211:1;1208;1201:12;1165:2;1246:54;1296:3;1287:6;1276:9;1272:22;1246:54;;;1239:4;1232:5;1228:16;1221:80;1071:241;1387:2;1420:49;1465:3;1456:6;1445:9;1441:22;1420:49;;;1413:4;1406:5;1402:16;1395:75;1322:159;818:673;;;;;1550:719;;1673:4;1661:9;1656:3;1652:19;1648:30;1645:2;;;1691:1;1688;1681:12;1645:2;1709:20;1724:4;1709:20;;;1700:29;-1:-1;1779:1;1810:49;1855:3;1835:9;1810:49;;;1786:74;;-1:-1;1930:2;1963:49;2008:3;1984:22;;;1963:49;;;1956:4;1949:5;1945:16;1938:75;1881:143;2102:2;2091:9;2087:18;2074:32;2126:18;2118:6;2115:30;2112:2;;;2158:1;2155;2148:12;2112:2;2193:54;2243:3;2234:6;2223:9;2219:22;2193:54;;2401:381;;2532:2;2520:9;2511:7;2507:23;2503:32;2500:2;;;2548:1;2545;2538:12;2500:2;2583:31;;2634:18;2623:30;;2620:2;;;2666:1;2663;2656:12;2620:2;2686:80;2758:7;2749:6;2738:9;2734:22;2686:80;;;2676:90;2494:288;-1:-1;;;;2494:288;2789:395;;2927:2;2915:9;2906:7;2902:23;2898:32;2895:2;;;2943:1;2940;2933:12;2895:2;2978:31;;3029:18;3018:30;;3015:2;;;3061:1;3058;3051:12;3015:2;3081:87;3160:7;3151:6;3140:9;3136:22;3081:87;;3191:120;3274:31;3299:5;3274:31;;;3269:3;3262:44;3256:55;;;3318:348;;3442:34;3470:5;3442:34;;;3488:88;3569:6;3564:3;3488:88;;;3481:95;;3581:52;3626:6;3621:3;3614:4;3607:5;3603:16;3581:52;;;3645:16;;;;;3422:244;-1:-1;;3422:244;3674:400;;3852:85;3934:2;3929:3;3852:85;;;3970:66;3950:87;;4065:2;4056:12;;3838:236;-1:-1;;3838:236;4083:400;;4261:85;4343:2;4338:3;4261:85;;;4379:66;4359:87;;4474:2;4465:12;;4247:236;-1:-1;;4247:236;4492:398;;4670:84;4752:1;4747:3;4670:84;;;4787:66;4767:87;;4882:1;4873:11;;4656:234;-1:-1;;4656:234;4899:400;;5077:85;5159:2;5154:3;5077:85;;;5195:66;5175:87;;5290:2;5281:12;;5063:236;-1:-1;;5063:236;5308:400;;5486:85;5568:2;5563:3;5486:85;;;5604:66;5584:87;;5699:2;5690:12;;5472:236;-1:-1;;5472:236;5717:400;;5895:85;5977:2;5972:3;5895:85;;;6013:66;5993:87;;6108:2;6099:12;;5881:236;-1:-1;;5881:236;6126:501;;6304:85;6386:2;6381:3;6304:85;;;6422:66;6402:87;;6523:66;6518:2;6509:12;;6502:88;6618:2;6609:12;;6290:337;-1:-1;;6290:337;6636:400;;6814:85;6896:2;6891:3;6814:85;;;6932:66;6912:87;;7027:2;7018:12;;6800:236;-1:-1;;6800:236;7045:400;;7223:85;7305:2;7300:3;7223:85;;;7341:66;7321:87;;7436:2;7427:12;;7209:236;-1:-1;;7209:236;7453:254;;7593:89;7678:3;7669:6;7593:89;;7714:1440;;8317:148;8461:3;8317:148;;;8310:155;;8483:148;8627:3;8483:148;;;8476:155;;8649:148;8793:3;8649:148;;;8642:155;;8815:148;8959:3;8815:148;;;8808:155;;8981:148;9125:3;8981:148;;9161:1440;;9764:148;9908:3;9764:148;;;9757:155;;9930:148;10074:3;9930:148;;;9923:155;;10096:148;10240:3;10096:148;;;10089:155;;10262:148;10406:3;10262:148;;10608:213;10726:2;10711:18;;10740:71;10715:9;10784:6;10740:71;;10828:256;10890:2;10884:9;10916:17;;;10991:18;10976:34;;11012:22;;;10973:62;10970:2;;;11048:1;11045;11038:12;10970:2;11064;11057:22;10868:216;;-1:-1;10868:216;11091:254;;11230:18;11222:6;11219:30;11216:2;;;11262:1;11259;11252:12;11216:2;-1:-1;11335:4;11306;11283:17;;;;11302:9;11279:33;11325:15;;11153:192;11352:87;11422:12;;11406:33;11447:144;11582:3;11560:31;-1:-1;11560:31;11753:79;11822:5;11805:27;11839:105;;12117:42;12106:54;;11908:31;12089:76;12259:145;12340:6;12335:3;12330;12317:30;-1:-1;12396:1;12378:16;;12371:27;12310:94;12413:268;12478:1;12485:101;12499:6;12496:1;12493:13;12485:101;;;12566:11;;;12560:18;12547:11;;;12540:39;12521:2;12514:10;12485:101;;;12601:6;12598:1;12595:13;12592:2;;;12666:1;12657:6;12652:3;12648:16;12641:27;12592:2;12462:219;;;;" - } - } - }, - "sources": { - "test/TestLibs.sol": { - "id": 3 - }, - "src/libs/LibTECApproval.sol": { - "id": 1 - }, - "src/libs/LibEIP712Domain.sol": { - "id": 0 - }, - "src/libs/LibZeroExTransaction.sol": { - "id": 2 - } - }, - "sourceCodes": { - "test/TestLibs.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../src/libs/LibTECApproval.sol\";\nimport \"../src/libs/LibZeroExTransaction.sol\";\n\n\ncontract TestLibs is\n LibTECApproval,\n LibZeroExTransaction\n{\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function publicGetTECApprovalHash(TECApproval memory approval)\n public\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = getTECApprovalHash(approval);\n return approvalHash;\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function publicGetTransactionHash(ZeroExTransaction memory transaction)\n public\n view\n returns (bytes32 transactionHash)\n {\n transactionHash = getTransactionHash(transaction);\n return transactionHash;\n }\n}\n", - "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n" - }, - "sourceTreeHashHex": "0x2d256b13f2542ebde5880e37c88e2fee3a815d26882e4fdaefd5df58adfa3005", - "compiler": { - "name": "solc", - "version": "0.5.4+commit.9549d8ff.Linux.g++", - "settings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode.object", - "evm.bytecode.sourceMap", - "evm.deployedBytecode.object", - "evm.deployedBytecode.sourceMap" - ] - } - }, - "remappings": [ - "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", - "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" - ] - } - }, - "networks": {} -} \ No newline at end of file diff --git a/contracts/tec/generated-artifacts/TestMixins.json b/contracts/tec/generated-artifacts/TestMixins.json deleted file mode 100644 index f743664278..0000000000 --- a/contracts/tec/generated-artifacts/TestMixins.json +++ /dev/null @@ -1,284 +0,0 @@ -{ - "schemaVersion": "2.0.0", - "contractName": "TestMixins", - "compilerOutput": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "hash", - "type": "bytes32" - }, - { - "name": "signature", - "type": "bytes" - } - ], - "name": "getSignerAddress", - "outputs": [ - { - "name": "signerAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "components": [ - { - "name": "makerAddress", - "type": "address" - }, - { - "name": "takerAddress", - "type": "address" - }, - { - "name": "feeRecipientAddress", - "type": "address" - }, - { - "name": "senderAddress", - "type": "address" - }, - { - "name": "makerAssetAmount", - "type": "uint256" - }, - { - "name": "takerAssetAmount", - "type": "uint256" - }, - { - "name": "makerFee", - "type": "uint256" - }, - { - "name": "takerFee", - "type": "uint256" - }, - { - "name": "expirationTimeSeconds", - "type": "uint256" - }, - { - "name": "salt", - "type": "uint256" - }, - { - "name": "makerAssetData", - "type": "bytes" - }, - { - "name": "takerAssetData", - "type": "bytes" - } - ], - "name": "orders", - "type": "tuple[]" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "assertValidTransactionOrdersApproval", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "assertValidTECApprovals", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EIP712_DOMAIN_HASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "0x7f454950373132446f6d61696e280000000000000000000000000000000000000060a09081527f737472696e67206e616d652c000000000000000000000000000000000000000060ad527f737472696e672076657273696f6e2c000000000000000000000000000000000060b9527f6164647265737320766572696679696e67436f6e74726163740000000000000060c8527f290000000000000000000000000000000000000000000000000000000000000060e152604260808190529020610142604052602760e2818152906123ce610102398051602091820120604080518082018252600581527f312e302e3000000000000000000000000000000000000000000000000000000090840152805180840194909452838101919091527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060840152306080808501919091528151808503909101815260a090930190528151910120600055612259806101756000396000f3fe608060405234801561001057600080fd5b5060043610610068577c010000000000000000000000000000000000000000000000000000000060003504630f7d8e39811461006d57806355fc233c146100965780636c42c828146100ab578063e306f779146100be575b600080fd5b61008061007b366004611a91565b6100d3565b60405161008d919061201d565b60405180910390f35b6100a96100a4366004611b77565b6104c8565b005b6100a96100b9366004611c63565b610732565b6100c6610761565b60405161008d919061202b565b600080825111151561011a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120d9565b60405180910390fd5b600061012583610767565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff821610610187576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b60008160ff16600381111561019857fe5b905060008160038111156101a857fe5b14156101e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120c9565b60018160038111156101ee57fe5b141561032c57835160411461022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561024057fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050600061028286600163ffffffff61082b16565b9050600061029787602163ffffffff61082b16565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104c295505050505050565b600281600381111561033a57fe5b141561049057835160411461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561038c57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103ce86600163ffffffff61082b16565b905060006103e387602163ffffffff61082b16565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b92915050565b60006104d386610876565b60408051600080825260208201909252845192935091905b818110156105bf576000868281518110151561050357fe5b906020019060200201519050610517611422565b5060408051606081018252868152602081018a905290810182905242821161056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612089565b600061057682610889565b9050600061059b828a8781518110151561058c57fe5b906020019060200201516100d3565b90506105ad878263ffffffff61089716565b965050600190930192506104eb915050565b50865160005b818110156107265788516000908a90839081106105de57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561060d5761071e565b6000898281518110151561061d57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106635761065b853263ffffffff61089716565b94505061071e565b6000610675868363ffffffff61096116565b90508015156106b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612049565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806106e357506106e3863263ffffffff61096116565b151561071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120e9565b50505b6001016105c5565b50505050505050505050565b606061074185604001516109d9565b905060008151111561075a5761075a85828686866104c8565b5050505050565b60005481565b60008082511115156107a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120b9565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106107d557fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b60008160200183511015151561086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612099565b50016020015190565b60006104c261088483610e91565b61104d565b60006104c26108848361108d565b8151604051606091849060208082028084018201929101828510156108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612079565b82851115610902576108fb85858361121f565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110151561092f57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b818110156109ce578373ffffffffffffffffffffffffffffffffffffffff16858281518110151561099557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614156109c6576001925050506104c2565b600101610968565b506000949350505050565b606060006109ed838263ffffffff6112e316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610a8057507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610acc57507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610b5657610ad9611447565b8351610aef90859060049063ffffffff61135016565b806020019051610b029190810190611ae3565b604080516001808252818301909252919250816020015b610b21611447565b815260200190600190039081610b1957905050925080836000815181101515610b4657fe5b6020908102909101015250610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610be757507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610c3357507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610c7f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610ccb57507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610d1757507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610d6357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610d98578251610d7e90849060049063ffffffff61135016565b806020019051610d919190810190611a54565b9150610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610e8b57610dea611447565b610df2611447565b8451610e0890869060049063ffffffff61135016565b806020019051610e1b9190810190611b18565b60408051600280825260608201909252929450909250816020015b610e3e611447565b815260200190600190039081610e3657905050935081846000815181101515610e6357fe5b602090810290910101528351819085906001908110610e7e57fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b60208310610fc557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610f88565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256121fb8239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b602083106111ad57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611170565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611249576001816020036101000a0380198351168185511680821786525050506112de565b82821415611256576112de565b828211156112905760208103905080820181840181515b8285101561128857845186526020958601959094019361126d565b9052506112de565b60208103905080820181840183515b818612156112d957825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061129f565b855250505b505050565b600081600401835110151515611325576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120f9565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60608183111561138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612059565b83518211156113c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612069565b8282036040519080825280601f01601f1916602001820160405280156113f4576020820181803883390190505b5090506114156114038261141c565b8461140d8761141c565b01835161121f565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114158235612197565b60006114158251612197565b6000601f8201831361152a57600080fd5b813561153d61153882612130565b612109565b81815260209384019390925082018360005b8381101561157b578135860161156588826116bb565b845250602092830192919091019060010161154f565b5050505092915050565b6000601f8201831361159657600080fd5b81516115a461153882612130565b81815260209384019390925082018360005b8381101561157b57815186016115cc8882611899565b84525060209283019291909101906001016115b6565b6000601f820183136115f357600080fd5b813561160161153882612130565b81815260209384019390925082018360005b8381101561157b57813586016116298882611750565b8452506020928301929190910190600101611613565b6000601f8201831361165057600080fd5b813561165e61153882612130565b9150818183526020840193506020810190508385602084028201111561168357600080fd5b60005b8381101561157b578161169988826116af565b8452506020928301929190910190600101611686565b600061141582356121a2565b6000601f820183136116cc57600080fd5b81356116da61153882612151565b915080825260208301602083018583830111156116f657600080fd5b6117018382846121be565b50505092915050565b6000601f8201831361171b57600080fd5b815161172961153882612151565b9150808252602083016020830185838301111561174557600080fd5b6117018382846121ca565b6000610180828403121561176357600080fd5b61176e610180612109565b9050600061177c8484611501565b825250602061178d84848301611501565b60208301525060406117a184828501611501565b60408301525060606117b584828501611501565b60608301525060806117c9848285016116af565b60808301525060a06117dd848285016116af565b60a08301525060c06117f1848285016116af565b60c08301525060e0611805848285016116af565b60e08301525061010061181a848285016116af565b61010083015250610120611830848285016116af565b6101208301525061014082013567ffffffffffffffff81111561185257600080fd5b61185e848285016116bb565b6101408301525061016082013567ffffffffffffffff81111561188057600080fd5b61188c848285016116bb565b6101608301525092915050565b600061018082840312156118ac57600080fd5b6118b7610180612109565b905060006118c5848461150d565b82525060206118d68484830161150d565b60208301525060406118ea8482850161150d565b60408301525060606118fe8482850161150d565b606083015250608061191284828501611a48565b60808301525060a061192684828501611a48565b60a08301525060c061193a84828501611a48565b60c08301525060e061194e84828501611a48565b60e08301525061010061196384828501611a48565b6101008301525061012061197984828501611a48565b6101208301525061014082015167ffffffffffffffff81111561199b57600080fd5b6119a78482850161170a565b6101408301525061016082015167ffffffffffffffff8111156119c957600080fd5b61188c8482850161170a565b6000606082840312156119e757600080fd5b6119f16060612109565b905060006119ff84846116af565b8252506020611a1084848301611501565b602083015250604082013567ffffffffffffffff811115611a3057600080fd5b611a3c848285016116bb565b60408301525092915050565b600061141582516121a2565b600060208284031215611a6657600080fd5b815167ffffffffffffffff811115611a7d57600080fd5b611a8984828501611585565b949350505050565b60008060408385031215611aa457600080fd5b6000611ab085856116af565b925050602083013567ffffffffffffffff811115611acd57600080fd5b611ad9858286016116bb565b9150509250929050565b600060208284031215611af557600080fd5b815167ffffffffffffffff811115611b0c57600080fd5b611a8984828501611899565b60008060408385031215611b2b57600080fd5b825167ffffffffffffffff811115611b4257600080fd5b611b4e85828601611899565b925050602083015167ffffffffffffffff811115611b6b57600080fd5b611ad985828601611899565b600080600080600060a08688031215611b8f57600080fd5b853567ffffffffffffffff811115611ba657600080fd5b611bb2888289016119d5565b955050602086013567ffffffffffffffff811115611bcf57600080fd5b611bdb888289016115e2565b945050604086013567ffffffffffffffff811115611bf857600080fd5b611c04888289016116bb565b935050606086013567ffffffffffffffff811115611c2157600080fd5b611c2d8882890161163f565b925050608086013567ffffffffffffffff811115611c4a57600080fd5b611c5688828901611519565b9150509295509295909350565b60008060008060808587031215611c7957600080fd5b843567ffffffffffffffff811115611c9057600080fd5b611c9c878288016119d5565b945050602085013567ffffffffffffffff811115611cb957600080fd5b611cc5878288016116bb565b935050604085013567ffffffffffffffff811115611ce257600080fd5b611cee8782880161163f565b925050606085013567ffffffffffffffff811115611d0b57600080fd5b611d1787828801611519565b91505092959194509250565b611d2c81612197565b82525050565b611d2c816121a2565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104c28284611d23565b602081016104c28284611d32565b602080825281016104c281611d3b565b602080825281016104c281611d6b565b602080825281016104c281611d9b565b602080825281016104c281611dcb565b602080825281016104c281611dfb565b602080825281016104c281611e2b565b602080825281016104c281611e5b565b602080825281016104c281611eb1565b602080825281016104c281611ee1565b602080825281016104c281611f37565b602080825281016104c281611f67565b602080825281016104c281611f97565b602080825281016104c281611fc7565b60405181810167ffffffffffffffff8111828210171561212857600080fd5b604052919050565b600067ffffffffffffffff82111561214757600080fd5b5060209081020190565b600067ffffffffffffffff82111561216857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60006104c2826121a5565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b838110156121e55781810151838201526020016121cd565b838111156121f4576000848401525b5050505056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a72305820a7dc4db5ec1936281b9753d70f5cf618cba7a682c53caa572159a5117a653c926c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", - "opcodes": "PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0xA0 SWAP1 DUP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0xAD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0xB9 MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0xC8 MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0xE1 MSTORE PUSH1 0x42 PUSH1 0x80 DUP2 SWAP1 MSTORE SWAP1 KECCAK256 PUSH2 0x142 PUSH1 0x40 MSTORE PUSH1 0x27 PUSH1 0xE2 DUP2 DUP2 MSTORE SWAP1 PUSH2 0x23CE PUSH2 0x102 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE DUP1 MLOAD DUP1 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP4 ADD SWAP1 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH2 0x2259 DUP1 PUSH2 0x175 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x68 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0xF7D8E39 DUP2 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xBE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x80 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x1A91 JUMP JUMPDEST PUSH2 0xD3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA9 PUSH2 0xA4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B77 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA9 PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x732 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x202B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x11A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x125 DUP4 PUSH2 0x767 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x187 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A8 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1EE JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x32C JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x240 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x282 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x297 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4C2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x33A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x490 JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3CE DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E3 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP7 PUSH2 0x876 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5BF JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x503 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x517 PUSH2 0x1422 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x56B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x576 DUP3 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x59B DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x58C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0xD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x5AD DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x4EB SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x726 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x5DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x60D JUMPI PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x61D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x663 JUMPI PUSH2 0x65B DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x675 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x6E3 JUMPI POP PUSH2 0x6E3 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20E9 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5C5 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x741 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x9D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x75A JUMPI PUSH2 0x75A DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4C8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20B9 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x7D5 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x86D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2099 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0xE91 JUMP JUMPDEST PUSH2 0x104D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0x108D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2079 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x902 JUMPI PUSH2 0x8FB DUP6 DUP6 DUP4 PUSH2 0x121F JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x92F JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CE JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x995 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9C6 JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4C2 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x968 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9ED DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x12E3 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xA80 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xACC JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xB56 JUMPI PUSH2 0xAD9 PUSH2 0x1447 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xAEF SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xB02 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xB21 PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xB19 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB46 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xBE7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC33 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC7F JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCCB JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD17 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD63 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xD98 JUMPI DUP3 MLOAD PUSH2 0xD7E SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD91 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1A54 JUMP JUMPDEST SWAP2 POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xE8B JUMPI PUSH2 0xDEA PUSH2 0x1447 JUMP JUMPDEST PUSH2 0xDF2 PUSH2 0x1447 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xE08 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE1B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE3E PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xE36 JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE63 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xE7E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xFC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xF88 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x21FB DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x11AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1170 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1249 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x1256 JUMPI PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1290 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1288 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x126D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x12DE JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x12D9 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x129F JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x1325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20F9 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2059 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x13C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2069 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1415 PUSH2 0x1403 DUP3 PUSH2 0x141C JUMP JUMPDEST DUP5 PUSH2 0x140D DUP8 PUSH2 0x141C JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x121F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x152A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x153D PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST PUSH2 0x2109 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1565 DUP9 DUP3 PUSH2 0x16BB JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x154F JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15A4 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x15CC DUP9 DUP3 PUSH2 0x1899 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x15F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1601 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1629 DUP9 DUP3 PUSH2 0x1750 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1613 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x165E PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 PUSH2 0x1699 DUP9 DUP3 PUSH2 0x16AF JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1686 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x16F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21BE JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x171B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1729 PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21CA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x176E PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x177C DUP5 DUP5 PUSH2 0x1501 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x178D DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x17A1 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x17B5 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x17C9 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x17DD DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x17F1 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1805 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x181A DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1830 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185E DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B7 PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18C5 DUP5 DUP5 PUSH2 0x150D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x18D6 DUP5 DUP5 DUP4 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x18EA DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x18FE DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1912 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x1926 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x193A DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x194E DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1963 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1979 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A7 DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19F1 PUSH1 0x60 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x19FF DUP5 DUP5 PUSH2 0x16AF JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1A10 DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1585 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1AB0 DUP6 DUP6 PUSH2 0x16AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B4E DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1B8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP9 DUP3 DUP10 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BDB DUP9 DUP3 DUP10 ADD PUSH2 0x15E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C04 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C2D DUP9 DUP3 DUP10 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C56 DUP9 DUP3 DUP10 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1C79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C9C DUP8 DUP3 DUP9 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CC5 DUP8 DUP3 DUP9 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CEE DUP8 DUP3 DUP9 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D17 DUP8 DUP3 DUP9 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x2197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D32 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D9B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DCB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DFB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E5B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EB1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EE1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F67 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F97 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1FC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 DUP3 PUSH2 0x21A5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21E5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x21CD JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A72305820A7DC4DB5 0xec NOT CALLDATASIZE 0x28 SHL SWAP8 MSTORE8 0xd7 0xf 0x5c 0xf6 XOR 0xcb 0xa7 0xa6 DUP3 0xc5 EXTCODECOPY 0xaa JUMPI 0x21 MSIZE 0xa5 GT PUSH27 0x653C926C6578706572696D656E74616CF5003730782050726F746F PUSH4 0x6F6C2054 PUSH19 0x61646520457865637574696F6E20436F6F7264 PUSH10 0x6E61746F720000000000 ", - "sourceMap": "1083:148:9:-;;;;;;;;;;;;;;;;;22:32:-1;768:83:14;6:49:-1;;;1073:159:9;;1549:18;768:83:14;1549:18:9;;1083:148;1549:18;;;1083:148;1549:18;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;;;;;;;;;;;;;1583:39;1454:214;;;;1652:4;1454:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1454:214:9;;;;;;1444:225;;;;;-1:-1:-1;1423:246:9;768:83:14;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b5060043610610068577c010000000000000000000000000000000000000000000000000000000060003504630f7d8e39811461006d57806355fc233c146100965780636c42c828146100ab578063e306f779146100be575b600080fd5b61008061007b366004611a91565b6100d3565b60405161008d919061201d565b60405180910390f35b6100a96100a4366004611b77565b6104c8565b005b6100a96100b9366004611c63565b610732565b6100c6610761565b60405161008d919061202b565b600080825111151561011a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120d9565b60405180910390fd5b600061012583610767565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff821610610187576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b60008160ff16600381111561019857fe5b905060008160038111156101a857fe5b14156101e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120c9565b60018160038111156101ee57fe5b141561032c57835160411461022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561024057fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050600061028286600163ffffffff61082b16565b9050600061029787602163ffffffff61082b16565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104c295505050505050565b600281600381111561033a57fe5b141561049057835160411461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561038c57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103ce86600163ffffffff61082b16565b905060006103e387602163ffffffff61082b16565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b92915050565b60006104d386610876565b60408051600080825260208201909252845192935091905b818110156105bf576000868281518110151561050357fe5b906020019060200201519050610517611422565b5060408051606081018252868152602081018a905290810182905242821161056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612089565b600061057682610889565b9050600061059b828a8781518110151561058c57fe5b906020019060200201516100d3565b90506105ad878263ffffffff61089716565b965050600190930192506104eb915050565b50865160005b818110156107265788516000908a90839081106105de57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561060d5761071e565b6000898281518110151561061d57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106635761065b853263ffffffff61089716565b94505061071e565b6000610675868363ffffffff61096116565b90508015156106b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612049565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806106e357506106e3863263ffffffff61096116565b151561071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120e9565b50505b6001016105c5565b50505050505050505050565b606061074185604001516109d9565b905060008151111561075a5761075a85828686866104c8565b5050505050565b60005481565b60008082511115156107a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120b9565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106107d557fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b60008160200183511015151561086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612099565b50016020015190565b60006104c261088483610e91565b61104d565b60006104c26108848361108d565b8151604051606091849060208082028084018201929101828510156108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612079565b82851115610902576108fb85858361121f565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110151561092f57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b818110156109ce578373ffffffffffffffffffffffffffffffffffffffff16858281518110151561099557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614156109c6576001925050506104c2565b600101610968565b506000949350505050565b606060006109ed838263ffffffff6112e316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610a8057507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610acc57507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610b5657610ad9611447565b8351610aef90859060049063ffffffff61135016565b806020019051610b029190810190611ae3565b604080516001808252818301909252919250816020015b610b21611447565b815260200190600190039081610b1957905050925080836000815181101515610b4657fe5b6020908102909101015250610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610be757507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610c3357507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610c7f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610ccb57507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610d1757507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610d6357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610d98578251610d7e90849060049063ffffffff61135016565b806020019051610d919190810190611a54565b9150610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610e8b57610dea611447565b610df2611447565b8451610e0890869060049063ffffffff61135016565b806020019051610e1b9190810190611b18565b60408051600280825260608201909252929450909250816020015b610e3e611447565b815260200190600190039081610e3657905050935081846000815181101515610e6357fe5b602090810290910101528351819085906001908110610e7e57fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b60208310610fc557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610f88565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256121fb8239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b602083106111ad57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611170565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611249576001816020036101000a0380198351168185511680821786525050506112de565b82821415611256576112de565b828211156112905760208103905080820181840181515b8285101561128857845186526020958601959094019361126d565b9052506112de565b60208103905080820181840183515b818612156112d957825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061129f565b855250505b505050565b600081600401835110151515611325576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120f9565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60608183111561138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612059565b83518211156113c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612069565b8282036040519080825280601f01601f1916602001820160405280156113f4576020820181803883390190505b5090506114156114038261141c565b8461140d8761141c565b01835161121f565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114158235612197565b60006114158251612197565b6000601f8201831361152a57600080fd5b813561153d61153882612130565b612109565b81815260209384019390925082018360005b8381101561157b578135860161156588826116bb565b845250602092830192919091019060010161154f565b5050505092915050565b6000601f8201831361159657600080fd5b81516115a461153882612130565b81815260209384019390925082018360005b8381101561157b57815186016115cc8882611899565b84525060209283019291909101906001016115b6565b6000601f820183136115f357600080fd5b813561160161153882612130565b81815260209384019390925082018360005b8381101561157b57813586016116298882611750565b8452506020928301929190910190600101611613565b6000601f8201831361165057600080fd5b813561165e61153882612130565b9150818183526020840193506020810190508385602084028201111561168357600080fd5b60005b8381101561157b578161169988826116af565b8452506020928301929190910190600101611686565b600061141582356121a2565b6000601f820183136116cc57600080fd5b81356116da61153882612151565b915080825260208301602083018583830111156116f657600080fd5b6117018382846121be565b50505092915050565b6000601f8201831361171b57600080fd5b815161172961153882612151565b9150808252602083016020830185838301111561174557600080fd5b6117018382846121ca565b6000610180828403121561176357600080fd5b61176e610180612109565b9050600061177c8484611501565b825250602061178d84848301611501565b60208301525060406117a184828501611501565b60408301525060606117b584828501611501565b60608301525060806117c9848285016116af565b60808301525060a06117dd848285016116af565b60a08301525060c06117f1848285016116af565b60c08301525060e0611805848285016116af565b60e08301525061010061181a848285016116af565b61010083015250610120611830848285016116af565b6101208301525061014082013567ffffffffffffffff81111561185257600080fd5b61185e848285016116bb565b6101408301525061016082013567ffffffffffffffff81111561188057600080fd5b61188c848285016116bb565b6101608301525092915050565b600061018082840312156118ac57600080fd5b6118b7610180612109565b905060006118c5848461150d565b82525060206118d68484830161150d565b60208301525060406118ea8482850161150d565b60408301525060606118fe8482850161150d565b606083015250608061191284828501611a48565b60808301525060a061192684828501611a48565b60a08301525060c061193a84828501611a48565b60c08301525060e061194e84828501611a48565b60e08301525061010061196384828501611a48565b6101008301525061012061197984828501611a48565b6101208301525061014082015167ffffffffffffffff81111561199b57600080fd5b6119a78482850161170a565b6101408301525061016082015167ffffffffffffffff8111156119c957600080fd5b61188c8482850161170a565b6000606082840312156119e757600080fd5b6119f16060612109565b905060006119ff84846116af565b8252506020611a1084848301611501565b602083015250604082013567ffffffffffffffff811115611a3057600080fd5b611a3c848285016116bb565b60408301525092915050565b600061141582516121a2565b600060208284031215611a6657600080fd5b815167ffffffffffffffff811115611a7d57600080fd5b611a8984828501611585565b949350505050565b60008060408385031215611aa457600080fd5b6000611ab085856116af565b925050602083013567ffffffffffffffff811115611acd57600080fd5b611ad9858286016116bb565b9150509250929050565b600060208284031215611af557600080fd5b815167ffffffffffffffff811115611b0c57600080fd5b611a8984828501611899565b60008060408385031215611b2b57600080fd5b825167ffffffffffffffff811115611b4257600080fd5b611b4e85828601611899565b925050602083015167ffffffffffffffff811115611b6b57600080fd5b611ad985828601611899565b600080600080600060a08688031215611b8f57600080fd5b853567ffffffffffffffff811115611ba657600080fd5b611bb2888289016119d5565b955050602086013567ffffffffffffffff811115611bcf57600080fd5b611bdb888289016115e2565b945050604086013567ffffffffffffffff811115611bf857600080fd5b611c04888289016116bb565b935050606086013567ffffffffffffffff811115611c2157600080fd5b611c2d8882890161163f565b925050608086013567ffffffffffffffff811115611c4a57600080fd5b611c5688828901611519565b9150509295509295909350565b60008060008060808587031215611c7957600080fd5b843567ffffffffffffffff811115611c9057600080fd5b611c9c878288016119d5565b945050602085013567ffffffffffffffff811115611cb957600080fd5b611cc5878288016116bb565b935050604085013567ffffffffffffffff811115611ce257600080fd5b611cee8782880161163f565b925050606085013567ffffffffffffffff811115611d0b57600080fd5b611d1787828801611519565b91505092959194509250565b611d2c81612197565b82525050565b611d2c816121a2565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104c28284611d23565b602081016104c28284611d32565b602080825281016104c281611d3b565b602080825281016104c281611d6b565b602080825281016104c281611d9b565b602080825281016104c281611dcb565b602080825281016104c281611dfb565b602080825281016104c281611e2b565b602080825281016104c281611e5b565b602080825281016104c281611eb1565b602080825281016104c281611ee1565b602080825281016104c281611f37565b602080825281016104c281611f67565b602080825281016104c281611f97565b602080825281016104c281611fc7565b60405181810167ffffffffffffffff8111828210171561212857600080fd5b604052919050565b600067ffffffffffffffff82111561214757600080fd5b5060209081020190565b600067ffffffffffffffff82111561216857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60006104c2826121a5565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b838110156121e55781810151838201526020016121cd565b838111156121f4576000848401525b5050505056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a72305820a7dc4db5ec1936281b9753d70f5cf618cba7a682c53caa572159a5117a653c926c6578706572696d656e74616cf50037", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x68 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0xF7D8E39 DUP2 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xBE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x80 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x1A91 JUMP JUMPDEST PUSH2 0xD3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA9 PUSH2 0xA4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B77 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA9 PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x732 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x202B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x11A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x125 DUP4 PUSH2 0x767 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x187 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A8 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1EE JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x32C JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x240 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x282 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x297 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4C2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x33A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x490 JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3CE DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E3 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP7 PUSH2 0x876 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5BF JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x503 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x517 PUSH2 0x1422 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x56B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x576 DUP3 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x59B DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x58C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0xD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x5AD DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x4EB SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x726 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x5DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x60D JUMPI PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x61D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x663 JUMPI PUSH2 0x65B DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x675 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x6E3 JUMPI POP PUSH2 0x6E3 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20E9 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5C5 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x741 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x9D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x75A JUMPI PUSH2 0x75A DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4C8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20B9 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x7D5 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x86D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2099 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0xE91 JUMP JUMPDEST PUSH2 0x104D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0x108D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2079 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x902 JUMPI PUSH2 0x8FB DUP6 DUP6 DUP4 PUSH2 0x121F JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x92F JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CE JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x995 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9C6 JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4C2 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x968 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9ED DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x12E3 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xA80 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xACC JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xB56 JUMPI PUSH2 0xAD9 PUSH2 0x1447 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xAEF SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xB02 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xB21 PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xB19 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB46 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xBE7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC33 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC7F JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCCB JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD17 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD63 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xD98 JUMPI DUP3 MLOAD PUSH2 0xD7E SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD91 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1A54 JUMP JUMPDEST SWAP2 POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xE8B JUMPI PUSH2 0xDEA PUSH2 0x1447 JUMP JUMPDEST PUSH2 0xDF2 PUSH2 0x1447 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xE08 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE1B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE3E PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xE36 JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE63 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xE7E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xFC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xF88 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x21FB DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x11AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1170 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1249 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x1256 JUMPI PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1290 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1288 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x126D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x12DE JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x12D9 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x129F JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x1325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20F9 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2059 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x13C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2069 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1415 PUSH2 0x1403 DUP3 PUSH2 0x141C JUMP JUMPDEST DUP5 PUSH2 0x140D DUP8 PUSH2 0x141C JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x121F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x152A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x153D PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST PUSH2 0x2109 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1565 DUP9 DUP3 PUSH2 0x16BB JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x154F JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15A4 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x15CC DUP9 DUP3 PUSH2 0x1899 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x15F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1601 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1629 DUP9 DUP3 PUSH2 0x1750 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1613 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x165E PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 PUSH2 0x1699 DUP9 DUP3 PUSH2 0x16AF JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1686 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x16F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21BE JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x171B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1729 PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21CA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x176E PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x177C DUP5 DUP5 PUSH2 0x1501 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x178D DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x17A1 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x17B5 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x17C9 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x17DD DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x17F1 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1805 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x181A DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1830 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185E DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B7 PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18C5 DUP5 DUP5 PUSH2 0x150D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x18D6 DUP5 DUP5 DUP4 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x18EA DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x18FE DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1912 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x1926 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x193A DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x194E DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1963 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1979 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A7 DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19F1 PUSH1 0x60 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x19FF DUP5 DUP5 PUSH2 0x16AF JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1A10 DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1585 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1AB0 DUP6 DUP6 PUSH2 0x16AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B4E DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1B8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP9 DUP3 DUP10 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BDB DUP9 DUP3 DUP10 ADD PUSH2 0x15E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C04 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C2D DUP9 DUP3 DUP10 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C56 DUP9 DUP3 DUP10 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1C79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C9C DUP8 DUP3 DUP9 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CC5 DUP8 DUP3 DUP9 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CEE DUP8 DUP3 DUP9 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D17 DUP8 DUP3 DUP9 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x2197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D32 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D9B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DCB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DFB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E5B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EB1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EE1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F67 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F97 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1FC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 DUP3 PUSH2 0x21A5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21E5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x21CD JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A72305820A7DC4DB5 0xec NOT CALLDATASIZE 0x28 SHL SWAP8 MSTORE8 0xd7 0xf 0x5c 0xf6 XOR 0xcb 0xa7 0xa6 DUP3 0xc5 EXTCODECOPY 0xaa JUMPI 0x21 MSIZE 0xa5 GT PUSH27 0x653C926C6578706572696D656E74616CF500370000000000000000 ", - "sourceMap": "768:83:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;768:83:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3439:2912:1;;;;;;;;;:::i;:::-;;1981:853;;;;;;;;;:::i;1339:33:9:-;;;:::i;:::-;;;;;;;;988:2549:0;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:0;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:0;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:0;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:0;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:0;;;;;;-1:-1:-1;2510:20:0;;-1:-1:-1;;;;;;2510:20:0;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:0;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:0;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:0;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:0;3499:31;;;;;;;;;;;988:2549;;;;;:::o;3439:2912:1:-;3813:23;3839:31;3858:11;3839:18;:31::i;:::-;3973:16;;;3987:1;3973:16;;;;;;;;;4027:25;;3813:57;;-1:-1:-1;3973:16:1;4027:25;4062:1090;4086:16;4082:1;:20;4062:1090;;;4162:44;4209:29;4239:1;4209:32;;;;;;;;;;;;;;;;;;4162:79;;4255:27;;:::i;:::-;-1:-1:-1;4285:222:1;;;;;;;;;;;;;;;;;;;;;;;4695:15;4656:54;;4569:191;;;;;;;;;;;;;;4839:20;4862:28;4881:8;4862:18;:28::i;:::-;4839:51;;4904:29;4936:53;4953:12;4967:18;4986:1;4967:21;;;;;;;;;;;;;;;;;;4936:16;:53::i;:::-;4904:85;-1:-1:-1;5088:53:1;:23;4904:85;5088:53;:30;:53;:::i;:::-;5062:79;-1:-1:-1;;4104:3:1;;;;;-1:-1:-1;4062:1090:1;;-1:-1:-1;;4062:1090:1;;-1:-1:-1;5193:13:1;;5170:20;5216:1129;5240:12;5236:1;:16;5216:1129;;;5351:9;;5386:1;;5351:6;;5358:1;;5351:9;;;;;;;;;;;;;;:23;;;:37;;;5347:84;;;5408:8;;5347:84;5537:23;5563:6;5570:1;5563:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;5610:28:1;;;5629:9;5610:28;5606:160;;;5684:41;:23;5715:9;5684:41;:30;:41;:::i;:::-;5658:67;;5743:8;;;5606:160;5857:20;5880:49;:23;5913:15;5880:49;:32;:49;:::i;:::-;5857:72;;5968:15;5943:100;;;;;;;;;;;;;;;;6201:25;;;;:38;;6230:9;6201:38;;:85;;-1:-1:-1;6243:43:1;:23;6276:9;6243:43;:32;:43;:::i;:::-;6176:158;;;;;;;;;;;;;;;;5216:1129;;;5254:3;;5216:1129;;;;3439:2912;;;;;;;;;:::o;1981:853::-;2350:30;2383:38;2404:11;:16;;;2383:20;:38::i;:::-;2350:71;;2508:1;2492:6;:13;:17;2488:340;;;2593:224;2647:11;2676:6;2700:20;2738:29;2785:18;2593:36;:224::i;:::-;1981:853;;;;;:::o;1339:33:9:-;;;;:::o;8315:448:19:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:19;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:19;13631:2;13729:13;13723:20;;13292:490::o;1514:406:11:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:10:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;1089:2103:18:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:18;;-1:-1:-1;;;;;1089:2103:18;;;;:::o;3431:342::-;3580:19;;3543:4;;;3609:136;3633:6;3629:1;:10;3609:136;;;3683:6;3664:25;;:12;3677:1;3664:15;;;;;;;;;;;;;;;;;;:25;;;3660:75;;;3716:4;3709:11;;;;;;3660:75;3641:3;;3609:136;;;-1:-1:-1;3761:5:18;;3431:342;-1:-1:-1;;;;3431:342:18:o;6563:1760:1:-;6659:30;6705:15;6723:18;:4;6705:15;6723:18;:15;:18;:::i;:::-;6705:36;-1:-1:-1;6768:31:1;;;6780:19;6768:31;;:87;;-1:-1:-1;6815:40:1;;;6827:28;6815:40;6768:87;:142;;;-1:-1:-1;6871:39:1;;;6883:27;6871:39;6768:142;6751:1543;;;6971:27;;:::i;:::-;7044:11;;7030:26;;7044:4;;7041:1;;7030:26;:10;:26;:::i;:::-;7002:102;;;;;;;;;;;;;;7127:23;;;7148:1;7127:23;;;;;;;;;6970:134;;-1:-1:-1;7127:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7118:32;;7176:5;7164:6;7171:1;7164:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6751:1543:1;;;7215:38;;;7227:26;7215:38;;:101;;-1:-1:-1;7269:47:1;;;7281:35;7269:47;7215:101;:163;;;-1:-1:-1;7332:46:1;;;7344:34;7332:46;7215:163;:217;;;-1:-1:-1;7394:38:1;;;7406:26;7394:38;7215:217;:280;;;-1:-1:-1;7448:47:1;;;7460:35;7448:47;7215:280;:335;;;-1:-1:-1;7511:39:1;;;7523:27;7511:39;7215:335;:399;;;-1:-1:-1;7566:48:1;;;7578:36;7566:48;7215:399;7198:1096;;;7763:11;;7749:26;;7763:4;;7760:1;;7749:26;:10;:26;:::i;:::-;7721:104;;;;;;;;;;;;;;7710:115;;7198:1096;;;7846:33;;;7858:21;7846:33;7842:452;;;7940:31;;:::i;:::-;7973:32;;:::i;:::-;8051:11;;8037:26;;8051:4;;8048:1;;8037:26;:10;:26;:::i;:::-;8009:118;;;;;;;;;;;;;;8189:23;;;8210:1;8189:23;;;;;;;;;7939:188;;-1:-1:-1;7939:188:1;;-1:-1:-1;8189:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8180:32;;8238:9;8226:6;8233:1;8226:9;;;;;;;;;;;;;;;;;;:21;8261:9;;8273:10;;8261:6;;8268:1;;8261:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7842:452:1;-1:-1:-1;6563:1760:1;;;:::o;2167:1395:11:-;823:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;823:146:11;;;;;;;813:157;;;;;;;;;2410:16;;;;2400:27;;2283:14;;813:157;2283:14;;823:146;;;;2400:27;;;;823:146;2400:27;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2400:27:11;;;;;;;;;;;;2525:16;;2575:25;;;;2999:26;;;3125:15;;;3118:29;;;;3270:42;3251:62;;;3234:15;;;3227:87;;;;-1:-1:-1;;;;3364:2:11;3352:15;;3345:33;;;;-1:-1:-1;3519:3:11;3501:22;;;2167:1395::o;1872:924:9:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:10:-;810:183;;;;;;;;;;;;;;;;;;;2349:14;;;;810:183;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:10;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2476:40:10;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3229:15;;;3222:40;;;;3316:15;;;3309:49;;;;3424:2;3412:15;;3405:54;;;;-1:-1:-1;;3562:3:10;3544:22;;;;2248:1357;-1:-1:-1;;;2248:1357:10:o;1808:4337:19:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:19;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:19;1808:4337;;;:::o;15595:687::-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:19;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:19;87:34:-1;135:17;;-1:-1;6890:20:19;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;768:83:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;;728:14;357:611;;;;;;;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1457;;;;;;12605:3;12593:9;12584:7;12580:23;12576:33;12573:2;;;12622:1;12619;12612:12;12573:2;12657:31;;12708:18;12697:30;;12694:2;;;12740:1;12737;12730:12;12694:2;12760:87;12839:7;12830:6;12819:9;12815:22;12760:87;;;12750:97;;12636:217;12912:2;12901:9;12897:18;12884:32;12936:18;12928:6;12925:30;12922:2;;;12968:1;12965;12958:12;12922:2;12988:97;13077:7;13068:6;13057:9;13053:22;12988:97;;;12978:107;;12863:228;13150:2;13139:9;13135:18;13122:32;13174:18;13166:6;13163:30;13160:2;;;13206:1;13203;13196:12;13160:2;13226:62;13280:7;13271:6;13260:9;13256:22;13226:62;;;13216:72;;13101:193;13353:2;13342:9;13338:18;13325:32;13377:18;13369:6;13366:30;13363:2;;;13409:1;13406;13399:12;13363:2;13429:78;13499:7;13490:6;13479:9;13475:22;13429:78;;;13419:88;;13304:209;13572:3;13561:9;13557:19;13544:33;13597:18;13589:6;13586:30;13583:2;;;13629:1;13626;13619:12;13583:2;13649:83;13724:7;13715:6;13704:9;13700:22;13649:83;;;13639:93;;13523:215;12567:1181;;;;;;;;;13755:1157;;;;;14008:3;13996:9;13987:7;13983:23;13979:33;13976:2;;;14025:1;14022;14015:12;13976:2;14060:31;;14111:18;14100:30;;14097:2;;;14143:1;14140;14133:12;14097:2;14163:87;14242:7;14233:6;14222:9;14218:22;14163:87;;;14153:97;;14039:217;14315:2;14304:9;14300:18;14287:32;14339:18;14331:6;14328:30;14325:2;;;14371:1;14368;14361:12;14325:2;14391:62;14445:7;14436:6;14425:9;14421:22;14391:62;;;14381:72;;14266:193;14518:2;14507:9;14503:18;14490:32;14542:18;14534:6;14531:30;14528:2;;;14574:1;14571;14564:12;14528:2;14594:78;14664:7;14655:6;14644:9;14640:22;14594:78;;;14584:88;;14469:209;14737:2;14726:9;14722:18;14709:32;14761:18;14753:6;14750:30;14747:2;;;14793:1;14790;14783:12;14747:2;14813:83;14888:7;14879:6;14868:9;14864:22;14813:83;;;14803:93;;14688:214;13970:942;;;;;;;;14919:120;15002:31;15027:5;15002:31;;;14997:3;14990:44;14984:55;;;15046:120;15129:31;15154:5;15129:31;;15174:306;15339:2;15327:15;;15376:66;15371:2;15362:12;;15355:88;15471:2;15462:12;;15320:160;15489:306;15654:2;15642:15;;15691:66;15686:2;15677:12;;15670:88;15786:2;15777:12;;15635:160;15804:306;15969:2;15957:15;;16006:66;16001:2;15992:12;;15985:88;16101:2;16092:12;;15950:160;16119:306;16284:2;16272:15;;16321:66;16316:2;16307:12;;16300:88;16416:2;16407:12;;16265:160;16434:306;16599:2;16587:15;;16636:66;16631:2;16622:12;;16615:88;16731:2;16722:12;;16580:160;16749:306;16914:2;16902:15;;16951:66;16946:2;16937:12;;16930:88;17046:2;17037:12;;16895:160;17064:407;17229:2;17217:15;;17266:66;17261:2;17252:12;;17245:88;17367:66;17362:2;17353:12;;17346:88;17462:2;17453:12;;17210:261;17480:306;17645:2;17633:15;;17682:66;17677:2;17668:12;;17661:88;17777:2;17768:12;;17626:160;17795:407;17960:2;17948:15;;17997:66;17992:2;17983:12;;17976:88;18098:66;18093:2;18084:12;;18077:88;18193:2;18184:12;;17941:261;18211:306;18376:2;18364:15;;18413:66;18408:2;18399:12;;18392:88;18508:2;18499:12;;18357:160;18526:306;18691:2;18679:15;;18728:66;18723:2;18714:12;;18707:88;18823:2;18814:12;;18672:160;18841:306;19006:2;18994:15;;19043:66;19038:2;19029:12;;19022:88;19138:2;19129:12;;18987:160;19156:407;19321:2;19309:15;;19358:66;19353:2;19344:12;;19337:88;19459:66;19454:2;19445:12;;19438:88;19554:2;19545:12;;19302:261;19571:213;19689:2;19674:18;;19703:71;19678:9;19747:6;19703:71;;19791:213;19909:2;19894:18;;19923:71;19898:9;19967:6;19923:71;;20011:407;20202:2;20216:47;;;20187:18;;20277:131;20187:18;20277:131;;20425:407;20616:2;20630:47;;;20601:18;;20691:131;20601:18;20691:131;;20839:407;21030:2;21044:47;;;21015:18;;21105:131;21015:18;21105:131;;21253:407;21444:2;21458:47;;;21429:18;;21519:131;21429:18;21519:131;;21667:407;21858:2;21872:47;;;21843:18;;21933:131;21843:18;21933:131;;22081:407;22272:2;22286:47;;;22257:18;;22347:131;22257:18;22347:131;;22495:407;22686:2;22700:47;;;22671:18;;22761:131;22671:18;22761:131;;22909:407;23100:2;23114:47;;;23085:18;;23175:131;23085:18;23175:131;;23323:407;23514:2;23528:47;;;23499:18;;23589:131;23499:18;23589:131;;23737:407;23928:2;23942:47;;;23913:18;;24003:131;23913:18;24003:131;;24151:407;24342:2;24356:47;;;24327:18;;24417:131;24327:18;24417:131;;24565:407;24756:2;24770:47;;;24741:18;;24831:131;24741:18;24831:131;;24979:407;25170:2;25184:47;;;25155:18;;25245:131;25155:18;25245:131;;25393:256;25455:2;25449:9;25481:17;;;25556:18;25541:34;;25577:22;;;25538:62;25535:2;;;25613:1;25610;25603:12;25535:2;25629;25622:22;25433:216;;-1:-1;25433:216;25656:263;;25820:18;25812:6;25809:30;25806:2;;;25852:1;25849;25842:12;25806:2;-1:-1;25881:4;25869:17;;;25899:15;;25743:176;26755:254;;26894:18;26886:6;26883:30;26880:2;;;26926:1;26923;26916:12;26880:2;-1:-1;26999:4;26970;26947:17;;;;26966:9;26943:33;26989:15;;26817:192;27281:105;;27350:31;27375:5;27350:31;;27393:79;27462:5;27445:27;27479:128;27559:42;27548:54;;27531:76;27899:145;27980:6;27975:3;27970;27957:30;-1:-1;28036:1;28018:16;;28011:27;27950:94;28053:268;28118:1;28125:101;28139:6;28136:1;28133:13;28125:101;;;28206:11;;;28200:18;28187:11;;;28180:39;28161:2;28154:10;28125:101;;;28241:6;28238:1;28235:13;28232:2;;;28306:1;28297:6;28292:3;28288:16;28281:27;28232:2;28102:219;;;;" - } - } - }, - "sources": { - "test/TestMixins.sol": { - "id": 14 - }, - "src/MixinSignatureValidator.sol": { - "id": 0 - }, - "@0x/contracts-utils/contracts/src/LibBytes.sol": { - "id": 19 - }, - "src/mixins/MSignatureValidator.sol": { - "id": 12 - }, - "src/interfaces/ISignatureValidator.sol": { - "id": 4 - }, - "src/MixinTECApprovalVerifier.sol": { - "id": 1 - }, - "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { - "id": 16 - }, - "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { - "id": 17 - }, - "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { - "id": 15 - }, - "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { - "id": 18 - }, - "src/libs/LibTECApproval.sol": { - "id": 10 - }, - "src/libs/LibEIP712Domain.sol": { - "id": 9 - }, - "src/libs/LibZeroExTransaction.sol": { - "id": 11 - }, - "src/mixins/MTECApprovalVerifier.sol": { - "id": 13 - }, - "src/interfaces/ITECApprovalVerifier.sol": { - "id": 5 - } - }, - "sourceCodes": { - "test/TestMixins.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../src/MixinSignatureValidator.sol\";\nimport \"../src/MixinTECApprovalVerifier.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract TestMixins is\n MixinSignatureValidator,\n MixinTECApprovalVerifier\n{}\n", - "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", - "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", - "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", - "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", - "src/MixinTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibTECApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinTECApprovalVerifier is\n LibExchangeSelectors,\n LibTECApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MTECApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i < signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n TECApproval memory approval = TECApproval({\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getTECApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i < ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n address approverAddress = orders[i].feeRecipientAddress;\n if (approverAddress == tx.origin) {\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n\n // The Ethereum transaction signer must be the 0x transaction signer or an approver of the 0x transaction\n require(\n transaction.signerAddress == tx.origin || approvalSignerAddresses.contains(tx.origin),\n \"INVALID_SENDER\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", - "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", - "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", - "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return true;\n }\n }\n return false;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool, uint256)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return (true, i);\n }\n }\n return (false, 0);\n }\n}\n", - "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/mixins/MTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ITECApprovalVerifier.sol\";\n\n\ncontract MTECApprovalVerifier is\n ITECApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", - "src/interfaces/ITECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n" - }, - "sourceTreeHashHex": "0x80e5c5d9f07cb233e9bb5306b6e8537da3b45a523553bdd1d1a1b2209a63c30c", - "compiler": { - "name": "solc", - "version": "0.5.3+commit.10d17f24.Linux.g++", - "settings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode.object", - "evm.bytecode.sourceMap", - "evm.deployedBytecode.object", - "evm.deployedBytecode.sourceMap" - ] - } - }, - "remappings": [ - "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", - "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" - ] - } - }, - "networks": {} -} \ No newline at end of file diff --git a/contracts/tec/generated-wrappers/tec.ts b/contracts/tec/generated-wrappers/tec.ts deleted file mode 100644 index 86d0fa40d5..0000000000 --- a/contracts/tec/generated-wrappers/tec.ts +++ /dev/null @@ -1,302 +0,0 @@ -// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name -// tslint:disable:no-unused-variable -// tslint:disable:no-unbound-method -import { BaseContract } from '@0x/base-contract'; -import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; -import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; -import { SimpleContractArtifact } from '@0x/types'; -import { Web3Wrapper } from '@0x/web3-wrapper'; -import * as ethers from 'ethers'; -import * as _ from 'lodash'; -// tslint:enable:no-unused-variable - - -/* istanbul ignore next */ -// tslint:disable:no-parameter-reassignment -// tslint:disable-next-line:class-name -export class TECContract extends BaseContract { - public getSignerAddress = { - async callAsync( - hash: string, - signature: string, - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, - signature - ]); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getSignerAddress(bytes32,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public assertValidTransactionOrdersApproval = { - async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>, - transactionSignature: string, - approvalExpirationTimeSeconds: BigNumber[], - approvalSignatures: string[], - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])', [transaction, - orders, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public assertValidTECApprovals = { - async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - transactionSignature: string, - approvalExpirationTimeSeconds: BigNumber[], - approvalSignatures: string[], - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public EIP712_DOMAIN_HASH = { - async callAsync( - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public executeTransaction = { - async sendTransactionAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - transactionSignature: string, - approvalExpirationTimeSeconds: BigNumber[], - approvalSignatures: string[], - txData: Partial = {}, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - self.executeTransaction.estimateGasAsync.bind( - self, - transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ), - ); - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); - return txHash; - }, - async estimateGasAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - transactionSignature: string, - approvalExpirationTimeSeconds: BigNumber[], - approvalSignatures: string[], - txData: Partial = {}, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const gas = await self._web3Wrapper.estimateGasAsync(txDataWithDefaults); - return gas; - }, - getABIEncodedTransactionData( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - transactionSignature: string, - approvalExpirationTimeSeconds: BigNumber[], - approvalSignatures: string[], - ): string { - const self = this as any as TECContract; - const abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); - return abiEncodedTransactionData; - }, - async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - transactionSignature: string, - approvalExpirationTimeSeconds: BigNumber[], - approvalSignatures: string[], - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public static async deployFrom0xArtifactAsync( - artifact: ContractArtifact | SimpleContractArtifact, - supportedProvider: SupportedProvider, - txDefaults: Partial, - _exchange: string, - ): Promise { - if (_.isUndefined(artifact.compilerOutput)) { - throw new Error('Compiler output not found in the artifact file'); - } - const provider = providerUtils.standardizeOrThrow(supportedProvider); - const bytecode = artifact.compilerOutput.evm.bytecode.object; - const abi = artifact.compilerOutput.abi; - return TECContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange -); - } - public static async deployAsync( - bytecode: string, - abi: ContractAbi, - supportedProvider: SupportedProvider, - txDefaults: Partial, - _exchange: string, - ): Promise { - const provider = providerUtils.standardizeOrThrow(supportedProvider); - const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [_exchange -] = BaseContract._formatABIDataItemList( - constructorAbi.inputs, - [_exchange -], - BaseContract._bigNumberToString, - ); - const iface = new ethers.utils.Interface(abi); - const deployInfo = iface.deployFunction; - const txData = deployInfo.encode(bytecode, [_exchange -]); - const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - {data: txData}, - txDefaults, - web3Wrapper.estimateGasAsync.bind(web3Wrapper), - ); - const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); - logUtils.log(`transactionHash: ${txHash}`); - const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); - logUtils.log(`TEC successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new TECContract(abi, txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = [_exchange -]; - return contractInstance; - } - constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('TEC', abi, address, supportedProvider, txDefaults); - classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); - } -} // tslint:disable:max-file-line-count -// tslint:enable:no-unbound-method diff --git a/contracts/tec/generated-wrappers/test_libs.ts b/contracts/tec/generated-wrappers/test_libs.ts deleted file mode 100644 index 18dac711e6..0000000000 --- a/contracts/tec/generated-wrappers/test_libs.ts +++ /dev/null @@ -1,148 +0,0 @@ -// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name -// tslint:disable:no-unused-variable -// tslint:disable:no-unbound-method -import { BaseContract } from '@0x/base-contract'; -import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; -import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; -import { SimpleContractArtifact } from '@0x/types'; -import { Web3Wrapper } from '@0x/web3-wrapper'; -import * as ethers from 'ethers'; -import * as _ from 'lodash'; -// tslint:enable:no-unused-variable - - -/* istanbul ignore next */ -// tslint:disable:no-parameter-reassignment -// tslint:disable-next-line:class-name -export class TestLibsContract extends BaseContract { - public publicGetTransactionHash = { - async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestLibsContract; - const encodedData = self._strictEncodeArguments('publicGetTransactionHash((uint256,address,bytes))', [transaction - ]); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('publicGetTransactionHash((uint256,address,bytes))'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public publicGetTECApprovalHash = { - async callAsync( - approval: {transactionHash: string;transactionSignature: string;approvalExpirationTimeSeconds: BigNumber}, - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestLibsContract; - const encodedData = self._strictEncodeArguments('publicGetTECApprovalHash((bytes32,bytes,uint256))', [approval - ]); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('publicGetTECApprovalHash((bytes32,bytes,uint256))'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public EIP712_DOMAIN_HASH = { - async callAsync( - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestLibsContract; - const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public static async deployFrom0xArtifactAsync( - artifact: ContractArtifact | SimpleContractArtifact, - supportedProvider: SupportedProvider, - txDefaults: Partial, - ): Promise { - if (_.isUndefined(artifact.compilerOutput)) { - throw new Error('Compiler output not found in the artifact file'); - } - const provider = providerUtils.standardizeOrThrow(supportedProvider); - const bytecode = artifact.compilerOutput.evm.bytecode.object; - const abi = artifact.compilerOutput.abi; - return TestLibsContract.deployAsync(bytecode, abi, provider, txDefaults, ); - } - public static async deployAsync( - bytecode: string, - abi: ContractAbi, - supportedProvider: SupportedProvider, - txDefaults: Partial, - ): Promise { - const provider = providerUtils.standardizeOrThrow(supportedProvider); - const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList( - constructorAbi.inputs, - [], - BaseContract._bigNumberToString, - ); - const iface = new ethers.utils.Interface(abi); - const deployInfo = iface.deployFunction; - const txData = deployInfo.encode(bytecode, []); - const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - {data: txData}, - txDefaults, - web3Wrapper.estimateGasAsync.bind(web3Wrapper), - ); - const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); - logUtils.log(`transactionHash: ${txHash}`); - const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); - logUtils.log(`TestLibs successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new TestLibsContract(abi, txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = []; - return contractInstance; - } - constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('TestLibs', abi, address, supportedProvider, txDefaults); - classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); - } -} // tslint:disable:max-file-line-count -// tslint:enable:no-unbound-method diff --git a/contracts/tec/generated-wrappers/test_mixins.ts b/contracts/tec/generated-wrappers/test_mixins.ts deleted file mode 100644 index 6c3c1eacfc..0000000000 --- a/contracts/tec/generated-wrappers/test_mixins.ts +++ /dev/null @@ -1,192 +0,0 @@ -// tslint:disable:no-consecutive-blank-lines ordered-imports align trailing-comma whitespace class-name -// tslint:disable:no-unused-variable -// tslint:disable:no-unbound-method -import { BaseContract } from '@0x/base-contract'; -import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; -import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; -import { SimpleContractArtifact } from '@0x/types'; -import { Web3Wrapper } from '@0x/web3-wrapper'; -import * as ethers from 'ethers'; -import * as _ from 'lodash'; -// tslint:enable:no-unused-variable - - -/* istanbul ignore next */ -// tslint:disable:no-parameter-reassignment -// tslint:disable-next-line:class-name -export class TestMixinsContract extends BaseContract { - public getSignerAddress = { - async callAsync( - hash: string, - signature: string, - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestMixinsContract; - const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, - signature - ]); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('getSignerAddress(bytes32,bytes)'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public assertValidTransactionOrdersApproval = { - async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>, - transactionSignature: string, - approvalExpirationTimeSeconds: BigNumber[], - approvalSignatures: string[], - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestMixinsContract; - const encodedData = self._strictEncodeArguments('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])', [transaction, - orders, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public assertValidTECApprovals = { - async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - transactionSignature: string, - approvalExpirationTimeSeconds: BigNumber[], - approvalSignatures: string[], - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestMixinsContract; - const encodedData = self._strictEncodeArguments('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public EIP712_DOMAIN_HASH = { - async callAsync( - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestMixinsContract; - const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); - const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...callData, - data: encodedData, - }, - self._web3Wrapper.getContractDefaults(), - ); - const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); - BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); - // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); - // tslint:enable boolean-naming - return result; - }, - }; - public static async deployFrom0xArtifactAsync( - artifact: ContractArtifact | SimpleContractArtifact, - supportedProvider: SupportedProvider, - txDefaults: Partial, - ): Promise { - if (_.isUndefined(artifact.compilerOutput)) { - throw new Error('Compiler output not found in the artifact file'); - } - const provider = providerUtils.standardizeOrThrow(supportedProvider); - const bytecode = artifact.compilerOutput.evm.bytecode.object; - const abi = artifact.compilerOutput.abi; - return TestMixinsContract.deployAsync(bytecode, abi, provider, txDefaults, ); - } - public static async deployAsync( - bytecode: string, - abi: ContractAbi, - supportedProvider: SupportedProvider, - txDefaults: Partial, - ): Promise { - const provider = providerUtils.standardizeOrThrow(supportedProvider); - const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList( - constructorAbi.inputs, - [], - BaseContract._bigNumberToString, - ); - const iface = new ethers.utils.Interface(abi); - const deployInfo = iface.deployFunction; - const txData = deployInfo.encode(bytecode, []); - const web3Wrapper = new Web3Wrapper(provider); - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - {data: txData}, - txDefaults, - web3Wrapper.estimateGasAsync.bind(web3Wrapper), - ); - const txHash = await web3Wrapper.sendTransactionAsync(txDataWithDefaults); - logUtils.log(`transactionHash: ${txHash}`); - const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); - logUtils.log(`TestMixins successfully deployed at ${txReceipt.contractAddress}`); - const contractInstance = new TestMixinsContract(abi, txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = []; - return contractInstance; - } - constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('TestMixins', abi, address, supportedProvider, txDefaults); - classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']); - } -} // tslint:disable:max-file-line-count -// tslint:enable:no-unbound-method From 8272c7a74e4531b16e3e1c653937ff086d437f88 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Thu, 14 Mar 2019 12:26:31 +0100 Subject: [PATCH 62/95] Reduce excess block polling when using Web3ProviderEngine --- packages/instant/src/util/provider_factory.ts | 6 ++++-- packages/website/ts/blockchain.ts | 12 +++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/instant/src/util/provider_factory.ts b/packages/instant/src/util/provider_factory.ts index 5af235d044..a0e63eb118 100644 --- a/packages/instant/src/util/provider_factory.ts +++ b/packages/instant/src/util/provider_factory.ts @@ -31,8 +31,10 @@ export const providerFactory = { // TODO(bmillman): make this more resilient to infura failures const rpcUrl = ETHEREUM_NODE_URL_BY_NETWORK[network]; providerEngine.addProvider(new RPCSubprovider(rpcUrl)); - // // Start the Provider Engine - providerEngine.start(); + // Start the Provider Engine + // HACK: Start the provider without unused block polling + // providerEngine.start(); + (providerEngine as any)._ready.go(); return providerEngine; }, }; diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts index f20b11a51d..d4df7c2478 100644 --- a/packages/website/ts/blockchain.ts +++ b/packages/website/ts/blockchain.ts @@ -125,7 +125,9 @@ export class Blockchain { return new RPCSubprovider(publicNodeUrl); }); provider.addProvider(new RedundantSubprovider(rpcSubproviders)); - provider.start(); + // HACK: Start the provider without unused block polling + // provider.start(); + (provider as any)._ready.go(); return [provider, ledgerSubprovider]; } else if (doesInjectedProviderExist && isPublicNodeAvailableForNetworkId) { // We catch all requests involving a users account and send it to the injectedWeb3 @@ -143,7 +145,9 @@ export class Blockchain { return new RPCSubprovider(publicNodeUrl); }); provider.addProvider(new RedundantSubprovider(rpcSubproviders)); - provider.start(); + // HACK: Start the provider without unused block polling + // provider.start(); + (provider as any)._ready.go(); return [provider, undefined]; } else if (doesInjectedProviderExist) { // Since no public node for this network, all requests go to injectedWeb3 instance @@ -159,7 +163,9 @@ export class Blockchain { return new RPCSubprovider(publicNodeUrl); }); provider.addProvider(new RedundantSubprovider(rpcSubproviders)); - provider.start(); + // HACK: Start the provider without unused block polling + // provider.start(); + (provider as any)._ready.go(); return [provider, undefined]; } } From f9ef942a988a654bfcfe9e9904d373097d2014b4 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Thu, 14 Mar 2019 14:04:27 +0100 Subject: [PATCH 63/95] Use providerUtils.startProviderEngine to minimize the HACK --- packages/instant/CHANGELOG.json | 9 +++++++++ packages/instant/src/util/provider_factory.ts | 10 +++------- packages/order-watcher/CHANGELOG.json | 4 ++++ packages/order-watcher/src/server.ts | 3 ++- packages/utils/CHANGELOG.json | 9 +++++++++ packages/utils/src/provider_utils.ts | 11 +++++++++++ packages/website/ts/blockchain.ts | 16 +++------------- 7 files changed, 41 insertions(+), 21 deletions(-) diff --git a/packages/instant/CHANGELOG.json b/packages/instant/CHANGELOG.json index 4fcd69fc11..e52a729968 100644 --- a/packages/instant/CHANGELOG.json +++ b/packages/instant/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "4.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "version": "4.0.0", "changes": [ diff --git a/packages/instant/src/util/provider_factory.ts b/packages/instant/src/util/provider_factory.ts index a0e63eb118..e84cecd9a0 100644 --- a/packages/instant/src/util/provider_factory.ts +++ b/packages/instant/src/util/provider_factory.ts @@ -3,7 +3,7 @@ import { providerUtils } from '@0x/utils'; import { ZeroExProvider } from 'ethereum-types'; import * as _ from 'lodash'; -import { BLOCK_POLLING_INTERVAL_MS, ETHEREUM_NODE_URL_BY_NETWORK } from '../constants'; +import { ETHEREUM_NODE_URL_BY_NETWORK } from '../constants'; import { Maybe, Network } from '../types'; export const providerFactory = { @@ -22,9 +22,7 @@ export const providerFactory = { return undefined; }, getFallbackNoSigningProvider: (network: Network): Web3ProviderEngine => { - const providerEngine = new Web3ProviderEngine({ - pollingInterval: BLOCK_POLLING_INTERVAL_MS, - }); + const providerEngine = new Web3ProviderEngine(); // Intercept calls to `eth_accounts` and always return empty providerEngine.addProvider(new EmptyWalletSubprovider()); // Construct an RPC subprovider, all data based requests will be sent via the RPCSubprovider @@ -32,9 +30,7 @@ export const providerFactory = { const rpcUrl = ETHEREUM_NODE_URL_BY_NETWORK[network]; providerEngine.addProvider(new RPCSubprovider(rpcUrl)); // Start the Provider Engine - // HACK: Start the provider without unused block polling - // providerEngine.start(); - (providerEngine as any)._ready.go(); + providerUtils.startProviderEngine(providerEngine); return providerEngine; }, }; diff --git a/packages/order-watcher/CHANGELOG.json b/packages/order-watcher/CHANGELOG.json index 51b253d72b..9d6ae1f060 100644 --- a/packages/order-watcher/CHANGELOG.json +++ b/packages/order-watcher/CHANGELOG.json @@ -13,6 +13,10 @@ { "note": "Fix race-condition bugs due to async event callbacks modifying shared state", "pr": 1718 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ], "timestamp": 1553091633 diff --git a/packages/order-watcher/src/server.ts b/packages/order-watcher/src/server.ts index 1d31e87ab9..9afb4c65d8 100644 --- a/packages/order-watcher/src/server.ts +++ b/packages/order-watcher/src/server.ts @@ -1,5 +1,6 @@ import { getContractAddressesForNetworkOrThrow } from '@0x/contract-addresses'; import { RPCSubprovider, Web3ProviderEngine } from '@0x/subproviders'; +import { providerUtils } from '@0x/utils'; import * as _ from 'lodash'; import { OrderWatcherWebSocketServer } from './order_watcher/order_watcher_web_socket_server'; @@ -11,7 +12,7 @@ const provider = new Web3ProviderEngine(); const jsonRpcUrl = process.env.JSON_RPC_URL || DEFAULT_RPC_URL; const rpcSubprovider = new RPCSubprovider(jsonRpcUrl); provider.addProvider(rpcSubprovider); -provider.start(); +providerUtils.startProviderEngine(provider); const networkId = process.env.NETWORK_ID !== undefined ? _.parseInt(process.env.NETWORK_ID) : GANACHE_NETWORK_ID; diff --git a/packages/utils/CHANGELOG.json b/packages/utils/CHANGELOG.json index 58c0118353..1bfd7e6013 100644 --- a/packages/utils/CHANGELOG.json +++ b/packages/utils/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "4.3.0", + "changes": [ + { + "note": "Added `startProviderEngine` to `providerUtils`. Preventing excess block polling", + "pr": 1695 + } + ] + }, { "timestamp": 1553091633, "version": "4.2.3", diff --git a/packages/utils/src/provider_utils.ts b/packages/utils/src/provider_utils.ts index 19ef0725e7..aae779ddf6 100644 --- a/packages/utils/src/provider_utils.ts +++ b/packages/utils/src/provider_utils.ts @@ -8,6 +8,17 @@ import { import * as _ from 'lodash'; export const providerUtils = { + /** + * Starts the Web3ProviderEngine without excess block polling + * @param providerEngine The Web3ProviderEngine + */ + startProviderEngine(providerEngine: any): void { + if (providerEngine.start === undefined) { + throw new Error(`Invalid Web3ProviderEngine`); + } + (providerEngine as any)._ready.go(); + (providerEngine as any)._running = true; + }, /** * Standardize the supported provider types into our internal provider interface * or throw if unsupported provider supplied. diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts index d4df7c2478..e5eba7d2d1 100644 --- a/packages/website/ts/blockchain.ts +++ b/packages/website/ts/blockchain.ts @@ -61,7 +61,6 @@ import { errorReporter } from 'ts/utils/error_reporter'; import { fakeTokenRegistry } from 'ts/utils/fake_token_registry'; import { tokenAddressOverrides } from 'ts/utils/token_address_overrides'; import { utils } from 'ts/utils/utils'; -import FilterSubprovider from 'web3-provider-engine/subproviders/filters'; import MintableArtifacts from '../contracts/Mintable.json'; @@ -120,14 +119,11 @@ export class Blockchain { }; const ledgerSubprovider = new LedgerSubprovider(ledgerWalletConfigs); provider.addProvider(ledgerSubprovider); - provider.addProvider(new FilterSubprovider()); const rpcSubproviders = _.map(configs.PUBLIC_NODE_URLS_BY_NETWORK_ID[networkIdIfExists], publicNodeUrl => { return new RPCSubprovider(publicNodeUrl); }); provider.addProvider(new RedundantSubprovider(rpcSubproviders)); - // HACK: Start the provider without unused block polling - // provider.start(); - (provider as any)._ready.go(); + providerUtils.startProviderEngine(provider); return [provider, ledgerSubprovider]; } else if (doesInjectedProviderExist && isPublicNodeAvailableForNetworkId) { // We catch all requests involving a users account and send it to the injectedWeb3 @@ -140,14 +136,11 @@ export class Blockchain { ? new MetamaskSubprovider(injectedProviderIfExists) : new SignerSubprovider(injectedProviderIfExists); provider.addProvider(signerSubprovider); - provider.addProvider(new FilterSubprovider()); const rpcSubproviders = _.map(publicNodeUrlsIfExistsForNetworkId, publicNodeUrl => { return new RPCSubprovider(publicNodeUrl); }); provider.addProvider(new RedundantSubprovider(rpcSubproviders)); - // HACK: Start the provider without unused block polling - // provider.start(); - (provider as any)._ready.go(); + providerUtils.startProviderEngine(provider); return [provider, undefined]; } else if (doesInjectedProviderExist) { // Since no public node for this network, all requests go to injectedWeb3 instance @@ -157,15 +150,12 @@ export class Blockchain { // We do this so that users can still browse the 0x Portal DApp even if they do not have web3 // injected into their browser. const provider = new Web3ProviderEngine(); - provider.addProvider(new FilterSubprovider()); const networkId = constants.NETWORK_ID_MAINNET; const rpcSubproviders = _.map(configs.PUBLIC_NODE_URLS_BY_NETWORK_ID[networkId], publicNodeUrl => { return new RPCSubprovider(publicNodeUrl); }); provider.addProvider(new RedundantSubprovider(rpcSubproviders)); - // HACK: Start the provider without unused block polling - // provider.start(); - (provider as any)._ready.go(); + providerUtils.startProviderEngine(provider); return [provider, undefined]; } } From 6a28e41bc80cdfe4ccfb32f38bf3bf1fe13b9671 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Thu, 14 Mar 2019 14:15:20 +0100 Subject: [PATCH 64/95] Remove unnecessary type assertion --- packages/utils/src/provider_utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/utils/src/provider_utils.ts b/packages/utils/src/provider_utils.ts index aae779ddf6..78a5182ed7 100644 --- a/packages/utils/src/provider_utils.ts +++ b/packages/utils/src/provider_utils.ts @@ -16,8 +16,8 @@ export const providerUtils = { if (providerEngine.start === undefined) { throw new Error(`Invalid Web3ProviderEngine`); } - (providerEngine as any)._ready.go(); - (providerEngine as any)._running = true; + providerEngine._ready.go(); + providerEngine._running = true; }, /** * Standardize the supported provider types into our internal provider interface From 180c65cfebd8ba5d1d7760275b781ed59d7ded62 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Mon, 18 Mar 2019 13:48:12 +0100 Subject: [PATCH 65/95] Change all packages to use web3providerengine without excess polling --- packages/contract-wrappers/test/erc20_wrapper_test.ts | 4 ++-- packages/contract-wrappers/test/erc721_wrapper_test.ts | 4 ++-- packages/dev-utils/src/web3_factory.ts | 3 ++- packages/metacoin/test/metacoin_test.ts | 1 - packages/migrations/src/cli.ts | 4 ++-- packages/migrations/src/utils/provider_factory.ts | 5 +++-- .../test/integration/ledger_subprovider_test.ts | 6 +++--- .../test/unit/eth_lightwallet_subprovider_test.ts | 3 ++- .../subproviders/test/unit/ledger_subprovider_test.ts | 3 ++- .../test/unit/mnemonic_wallet_subprovider_test.ts | 3 ++- .../test/unit/nonce_tracker_subprovider_test.ts | 10 +++++----- .../test/unit/private_key_wallet_subprovider_test.ts | 3 ++- .../test/unit/redundant_rpc_subprovider_test.ts | 5 +++-- 13 files changed, 30 insertions(+), 24 deletions(-) diff --git a/packages/contract-wrappers/test/erc20_wrapper_test.ts b/packages/contract-wrappers/test/erc20_wrapper_test.ts index 8078c0e0b8..bfbb2196d6 100644 --- a/packages/contract-wrappers/test/erc20_wrapper_test.ts +++ b/packages/contract-wrappers/test/erc20_wrapper_test.ts @@ -2,7 +2,7 @@ import { ContractAddresses } from '@0x/contract-addresses'; import { BlockchainLifecycle, callbackErrorReporter } from '@0x/dev-utils'; import { EmptyWalletSubprovider, Web3ProviderEngine } from '@0x/subproviders'; import { DoneCallback } from '@0x/types'; -import { BigNumber } from '@0x/utils'; +import { BigNumber, providerUtils } from '@0x/utils'; import * as chai from 'chai'; import 'mocha'; @@ -628,6 +628,6 @@ function addEmptyWalletSubprovider(p: Web3ProviderEngine): Web3ProviderEngine { for (const subprovider of currentSubproviders) { providerEngine.addProvider(subprovider); } - providerEngine.start(); + providerUtils.startProviderEngine(providerEngine); return providerEngine; } diff --git a/packages/contract-wrappers/test/erc721_wrapper_test.ts b/packages/contract-wrappers/test/erc721_wrapper_test.ts index bbf71208de..2679ef8d3b 100644 --- a/packages/contract-wrappers/test/erc721_wrapper_test.ts +++ b/packages/contract-wrappers/test/erc721_wrapper_test.ts @@ -1,7 +1,7 @@ import { BlockchainLifecycle, callbackErrorReporter } from '@0x/dev-utils'; import { EmptyWalletSubprovider, Web3ProviderEngine } from '@0x/subproviders'; import { DoneCallback } from '@0x/types'; -import { BigNumber } from '@0x/utils'; +import { BigNumber, providerUtils } from '@0x/utils'; import * as chai from 'chai'; import 'mocha'; @@ -460,6 +460,6 @@ function addEmptyWalletSubprovider(p: Web3ProviderEngine): Web3ProviderEngine { for (const subprovider of currentSubproviders) { providerEngine.addProvider(subprovider); } - providerEngine.start(); + providerUtils.startProviderEngine(providerEngine); return providerEngine; } diff --git a/packages/dev-utils/src/web3_factory.ts b/packages/dev-utils/src/web3_factory.ts index 3fa3c19f70..fcfac24b3d 100644 --- a/packages/dev-utils/src/web3_factory.ts +++ b/packages/dev-utils/src/web3_factory.ts @@ -5,6 +5,7 @@ import { RPCSubprovider, Web3ProviderEngine, } from '@0x/subproviders'; +import { providerUtils } from '@0x/utils'; import * as fs from 'fs'; import * as _ from 'lodash'; @@ -68,7 +69,7 @@ export const web3Factory = { } else { provider.addProvider(new RPCSubprovider(config.rpcUrl || constants.RPC_URL)); } - provider.start(); + providerUtils.startProviderEngine(provider); return provider; }, }; diff --git a/packages/metacoin/test/metacoin_test.ts b/packages/metacoin/test/metacoin_test.ts index 6612dd9683..bf7622f367 100644 --- a/packages/metacoin/test/metacoin_test.ts +++ b/packages/metacoin/test/metacoin_test.ts @@ -41,7 +41,6 @@ describe('Metacoin', () => { const amount = INITIAL_BALANCE.div(2); const oldBalance = await metacoin.balances.callAsync(ZERO_ADDRESS); expect(oldBalance).to.be.bignumber.equal(0); - // profiler.start(); const txHash = await metacoin.transfer1.sendTransactionAsync( { to: ZERO_ADDRESS, diff --git a/packages/migrations/src/cli.ts b/packages/migrations/src/cli.ts index 4e8ce982fa..1eefd73238 100644 --- a/packages/migrations/src/cli.ts +++ b/packages/migrations/src/cli.ts @@ -1,6 +1,6 @@ #!/usr/bin/env node import { RPCSubprovider, Web3ProviderEngine } from '@0x/subproviders'; -import { logUtils } from '@0x/utils'; +import { logUtils, providerUtils } from '@0x/utils'; import * as yargs from 'yargs'; import { runMigrationsAsync } from './migration'; @@ -26,7 +26,7 @@ const args = yargs const rpcSubprovider = new RPCSubprovider(args['rpc-url']); const provider = new Web3ProviderEngine(); provider.addProvider(rpcSubprovider); - provider.start(); + providerUtils.startProviderEngine(provider); const normalizedFromAddress = (args.from as string).toLowerCase(); const txDefaults = { from: normalizedFromAddress, diff --git a/packages/migrations/src/utils/provider_factory.ts b/packages/migrations/src/utils/provider_factory.ts index 8017b672a1..330a263e87 100644 --- a/packages/migrations/src/utils/provider_factory.ts +++ b/packages/migrations/src/utils/provider_factory.ts @@ -1,4 +1,5 @@ import { LedgerEthereumClient, LedgerSubprovider, RPCSubprovider, Web3ProviderEngine } from '@0x/subproviders'; +import { providerUtils } from '@0x/utils'; import Eth from '@ledgerhq/hw-app-eth'; // tslint:disable:no-implicit-dependencies import TransportNodeHid from '@ledgerhq/hw-transport-node-hid'; @@ -21,7 +22,7 @@ export const providerFactory = { const ledgerSubprovider = new LedgerSubprovider(ledgerWalletConfigs); provider.addProvider(ledgerSubprovider); provider.addProvider(new RPCSubprovider(constants.KOVAN_RPC_URL)); - provider.start(); + providerUtils.startProviderEngine(provider); return provider; }, async getMainnetLedgerProviderAsync(): Promise { @@ -33,7 +34,7 @@ export const providerFactory = { const ledgerSubprovider = new LedgerSubprovider(ledgerWalletConfigs); provider.addProvider(ledgerSubprovider); provider.addProvider(new RPCSubprovider(constants.MAINNET_RPC_URL)); - provider.start(); + providerUtils.startProviderEngine(provider); return provider; }, }; diff --git a/packages/subproviders/test/integration/ledger_subprovider_test.ts b/packages/subproviders/test/integration/ledger_subprovider_test.ts index b072e611bd..347a97380a 100644 --- a/packages/subproviders/test/integration/ledger_subprovider_test.ts +++ b/packages/subproviders/test/integration/ledger_subprovider_test.ts @@ -1,5 +1,5 @@ import { DoneCallback } from '@0x/types'; -import { promisify } from '@0x/utils'; +import { promisify, providerUtils } from '@0x/utils'; import Eth from '@ledgerhq/hw-app-eth'; // HACK: This dependency is optional and tslint skips optional dependencies // tslint:disable-next-line:no-implicit-dependencies @@ -86,11 +86,11 @@ describe('LedgerSubprovider', () => { ledgerProvider.addProvider(ledgerSubprovider); const httpProvider = new RPCSubprovider('http://localhost:8545'); ledgerProvider.addProvider(httpProvider); - ledgerProvider.start(); + providerUtils.startProviderEngine(ledgerProvider); defaultProvider = new Web3ProviderEngine(); defaultProvider.addProvider(httpProvider); - defaultProvider.start(); + providerUtils.startProviderEngine(defaultProvider); }); it('returns a list of accounts', (done: DoneCallback) => { const payload = { diff --git a/packages/subproviders/test/unit/eth_lightwallet_subprovider_test.ts b/packages/subproviders/test/unit/eth_lightwallet_subprovider_test.ts index 49698ce9e0..468a9725f4 100644 --- a/packages/subproviders/test/unit/eth_lightwallet_subprovider_test.ts +++ b/packages/subproviders/test/unit/eth_lightwallet_subprovider_test.ts @@ -1,3 +1,4 @@ +import { providerUtils } from '@0x/utils'; import * as chai from 'chai'; import * as lightwallet from 'eth-lightwallet'; import { JSONRPCResponsePayload } from 'ethereum-types'; @@ -88,7 +89,7 @@ describe('EthLightwalletSubprovider', () => { provider = new Web3ProviderEngine(); provider.addProvider(ethLightwalletSubprovider); provider.addProvider(ganacheSubprovider); - provider.start(); + providerUtils.startProviderEngine(provider); }); describe('success cases', () => { it('returns a list of accounts', (done: DoneCallback) => { diff --git a/packages/subproviders/test/unit/ledger_subprovider_test.ts b/packages/subproviders/test/unit/ledger_subprovider_test.ts index a1d146dbc0..062df4ee06 100644 --- a/packages/subproviders/test/unit/ledger_subprovider_test.ts +++ b/packages/subproviders/test/unit/ledger_subprovider_test.ts @@ -1,3 +1,4 @@ +import { providerUtils } from '@0x/utils'; import * as chai from 'chai'; import { JSONRPCResponsePayload } from 'ethereum-types'; import * as ethUtils from 'ethereumjs-util'; @@ -105,7 +106,7 @@ describe('LedgerSubprovider', () => { provider = new Web3ProviderEngine(); provider.addProvider(ledgerSubprovider); provider.addProvider(ganacheSubprovider); - provider.start(); + providerUtils.startProviderEngine(provider); }); describe('success cases', () => { it('returns a list of accounts', (done: DoneCallback) => { diff --git a/packages/subproviders/test/unit/mnemonic_wallet_subprovider_test.ts b/packages/subproviders/test/unit/mnemonic_wallet_subprovider_test.ts index 61dcbf6da1..151addd23b 100644 --- a/packages/subproviders/test/unit/mnemonic_wallet_subprovider_test.ts +++ b/packages/subproviders/test/unit/mnemonic_wallet_subprovider_test.ts @@ -1,3 +1,4 @@ +import { providerUtils } from '@0x/utils'; import * as chai from 'chai'; import { JSONRPCResponsePayload } from 'ethereum-types'; import * as ethUtils from 'ethereumjs-util'; @@ -77,7 +78,7 @@ describe('MnemonicWalletSubprovider', () => { provider.addProvider(subprovider); const ganacheSubprovider = new GanacheSubprovider({}); provider.addProvider(ganacheSubprovider); - provider.start(); + providerUtils.startProviderEngine(provider); }); describe('success cases', () => { it('returns a list of accounts', (done: DoneCallback) => { diff --git a/packages/subproviders/test/unit/nonce_tracker_subprovider_test.ts b/packages/subproviders/test/unit/nonce_tracker_subprovider_test.ts index a5cef30dc3..25566ebc06 100644 --- a/packages/subproviders/test/unit/nonce_tracker_subprovider_test.ts +++ b/packages/subproviders/test/unit/nonce_tracker_subprovider_test.ts @@ -1,7 +1,7 @@ import * as chai from 'chai'; import FixtureSubprovider = require('web3-provider-engine/subproviders/fixture'); -import { promisify } from '@0x/utils'; +import { promisify, providerUtils } from '@0x/utils'; import EthereumTx = require('ethereumjs-tx'); import { NonceTrackerSubprovider, Web3ProviderEngine } from '../../src'; @@ -56,7 +56,7 @@ describe('NonceTrackerSubprovider', () => { const nonceTrackerSubprovider = new NonceTrackerSubprovider(); provider.addProvider(nonceTrackerSubprovider); provider.addProvider(createFixtureSubprovider()); - provider.start(); + providerUtils.startProviderEngine(provider); const payload = { ...getTransactionCountPayload, params: ['0x0', 'pending'] }; @@ -70,7 +70,7 @@ describe('NonceTrackerSubprovider', () => { const nonceTrackerSubprovider = new NonceTrackerSubprovider(); provider.addProvider(nonceTrackerSubprovider); provider.addProvider(createFixtureSubprovider()); - provider.start(); + providerUtils.startProviderEngine(provider); const payload = { ...getTransactionCountPayload, params: ['0x0', 'latest'] }; @@ -91,7 +91,7 @@ describe('NonceTrackerSubprovider', () => { }, }), ); - provider.start(); + providerUtils.startProviderEngine(provider); const noncePayload = { ...getTransactionCountPayload, @@ -126,7 +126,7 @@ describe('NonceTrackerSubprovider', () => { }, }), ); - provider.start(); + providerUtils.startProviderEngine(provider); const noncePayload = { ...getTransactionCountPayload, diff --git a/packages/subproviders/test/unit/private_key_wallet_subprovider_test.ts b/packages/subproviders/test/unit/private_key_wallet_subprovider_test.ts index 4cd70e5edc..2bb45e48bc 100644 --- a/packages/subproviders/test/unit/private_key_wallet_subprovider_test.ts +++ b/packages/subproviders/test/unit/private_key_wallet_subprovider_test.ts @@ -1,3 +1,4 @@ +import { providerUtils } from '@0x/utils'; import * as chai from 'chai'; import { JSONRPCResponsePayload } from 'ethereum-types'; import * as ethUtils from 'ethereumjs-util'; @@ -48,7 +49,7 @@ describe('PrivateKeyWalletSubprovider', () => { provider.addProvider(subprovider); const ganacheSubprovider = new GanacheSubprovider({}); provider.addProvider(ganacheSubprovider); - provider.start(); + providerUtils.startProviderEngine(provider); }); describe('success cases', () => { it('returns a list of accounts', (done: DoneCallback) => { diff --git a/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts b/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts index fb4e43f9e3..caeed14d6f 100644 --- a/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts +++ b/packages/subproviders/test/unit/redundant_rpc_subprovider_test.ts @@ -1,4 +1,5 @@ import { DoneCallback } from '@0x/types'; +import { providerUtils } from '@0x/utils'; import * as chai from 'chai'; import { JSONRPCResponsePayload } from 'ethereum-types'; import * as Sinon from 'sinon'; @@ -20,7 +21,7 @@ describe('RedundantSubprovider', () => { const subproviders = [ganacheSubprovider]; const redundantSubprovider = new RedundantSubprovider(subproviders); provider.addProvider(redundantSubprovider); - provider.start(); + providerUtils.startProviderEngine(provider); const payload = { jsonrpc: '2.0', @@ -44,7 +45,7 @@ describe('RedundantSubprovider', () => { const subproviders = [nonExistentSubprovider as Subprovider, ganacheSubprovider]; const redundantSubprovider = new RedundantSubprovider(subproviders); provider.addProvider(redundantSubprovider); - provider.start(); + providerUtils.startProviderEngine(provider); const payload = { jsonrpc: '2.0', From 548089888de88aff85421b247450b37385e4597c Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Mon, 18 Mar 2019 14:38:27 +0100 Subject: [PATCH 66/95] Remove excess web3providernegine polling from contracts --- contracts/asset-proxy/test/global_hooks.ts | 4 +++- contracts/coordinator/test/global_hooks.ts | 4 +++- contracts/erc1155/test/global_hooks.ts | 4 +++- contracts/erc20/test/global_hooks.ts | 4 +++- contracts/erc721/test/global_hooks.ts | 4 +++- contracts/exchange-forwarder/test/global_hooks.ts | 4 +++- contracts/exchange-libs/test/global_hooks.ts | 4 +++- contracts/exchange/test/global_hooks.ts | 4 +++- contracts/extensions/test/global_hooks.ts | 4 +++- contracts/multisig/test/global_hooks.ts | 8 ++++---- contracts/utils/test/global_hooks.ts | 4 +++- packages/metacoin/test/global_hooks.ts | 3 ++- 12 files changed, 36 insertions(+), 15 deletions(-) diff --git a/contracts/asset-proxy/test/global_hooks.ts b/contracts/asset-proxy/test/global_hooks.ts index f8ace376a5..2ca47d433b 100644 --- a/contracts/asset-proxy/test/global_hooks.ts +++ b/contracts/asset-proxy/test/global_hooks.ts @@ -1,8 +1,10 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; + before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { diff --git a/contracts/coordinator/test/global_hooks.ts b/contracts/coordinator/test/global_hooks.ts index f8ace376a5..2ca47d433b 100644 --- a/contracts/coordinator/test/global_hooks.ts +++ b/contracts/coordinator/test/global_hooks.ts @@ -1,8 +1,10 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; + before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { diff --git a/contracts/erc1155/test/global_hooks.ts b/contracts/erc1155/test/global_hooks.ts index f8ace376a5..2ca47d433b 100644 --- a/contracts/erc1155/test/global_hooks.ts +++ b/contracts/erc1155/test/global_hooks.ts @@ -1,8 +1,10 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; + before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { diff --git a/contracts/erc20/test/global_hooks.ts b/contracts/erc20/test/global_hooks.ts index f8ace376a5..2ca47d433b 100644 --- a/contracts/erc20/test/global_hooks.ts +++ b/contracts/erc20/test/global_hooks.ts @@ -1,8 +1,10 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; + before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { diff --git a/contracts/erc721/test/global_hooks.ts b/contracts/erc721/test/global_hooks.ts index f8ace376a5..2ca47d433b 100644 --- a/contracts/erc721/test/global_hooks.ts +++ b/contracts/erc721/test/global_hooks.ts @@ -1,8 +1,10 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; + before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { diff --git a/contracts/exchange-forwarder/test/global_hooks.ts b/contracts/exchange-forwarder/test/global_hooks.ts index f8ace376a5..2ca47d433b 100644 --- a/contracts/exchange-forwarder/test/global_hooks.ts +++ b/contracts/exchange-forwarder/test/global_hooks.ts @@ -1,8 +1,10 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; + before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { diff --git a/contracts/exchange-libs/test/global_hooks.ts b/contracts/exchange-libs/test/global_hooks.ts index f8ace376a5..2ca47d433b 100644 --- a/contracts/exchange-libs/test/global_hooks.ts +++ b/contracts/exchange-libs/test/global_hooks.ts @@ -1,8 +1,10 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; + before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { diff --git a/contracts/exchange/test/global_hooks.ts b/contracts/exchange/test/global_hooks.ts index f8ace376a5..2ca47d433b 100644 --- a/contracts/exchange/test/global_hooks.ts +++ b/contracts/exchange/test/global_hooks.ts @@ -1,8 +1,10 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; + before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { diff --git a/contracts/extensions/test/global_hooks.ts b/contracts/extensions/test/global_hooks.ts index f8ace376a5..2ca47d433b 100644 --- a/contracts/extensions/test/global_hooks.ts +++ b/contracts/extensions/test/global_hooks.ts @@ -1,8 +1,10 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; + before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { diff --git a/contracts/multisig/test/global_hooks.ts b/contracts/multisig/test/global_hooks.ts index 68eb4f8d5f..12b942e07a 100644 --- a/contracts/multisig/test/global_hooks.ts +++ b/contracts/multisig/test/global_hooks.ts @@ -1,9 +1,9 @@ -import { env, EnvVars } from '@0x/dev-utils'; - import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { env, EnvVars } from '@0x/dev-utils'; +import { providerUtils } from '@0x/utils'; -before('start web3 provider engine', () => { - provider.start(); +before('start web3 provider', () => { + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { diff --git a/contracts/utils/test/global_hooks.ts b/contracts/utils/test/global_hooks.ts index f8ace376a5..2ca47d433b 100644 --- a/contracts/utils/test/global_hooks.ts +++ b/contracts/utils/test/global_hooks.ts @@ -1,8 +1,10 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; + before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { diff --git a/packages/metacoin/test/global_hooks.ts b/packages/metacoin/test/global_hooks.ts index f8ace376a5..4a54432a1c 100644 --- a/packages/metacoin/test/global_hooks.ts +++ b/packages/metacoin/test/global_hooks.ts @@ -1,8 +1,9 @@ import { env, EnvVars } from '@0x/dev-utils'; import { coverage, profiler, provider } from '@0x/contracts-test-utils'; +import { providerUtils } from '@0x/utils'; before('start web3 provider', () => { - provider.start(); + providerUtils.startProviderEngine(provider); }); after('generate coverage report', async () => { if (env.parseBoolean(EnvVars.SolidityCoverage)) { From 18c20136259a922874c65eed01dff05ea15a40ea Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Mon, 18 Mar 2019 15:13:29 +0100 Subject: [PATCH 67/95] Update contract CHANGELOGs --- contracts/asset-proxy/CHANGELOG.json | 4 ++++ contracts/coordinator/CHANGELOG.json | 4 ++++ contracts/erc1155/CHANGELOG.json | 4 ++++ contracts/erc20/CHANGELOG.json | 4 ++++ contracts/erc721/CHANGELOG.json | 4 ++++ contracts/exchange-forwarder/CHANGELOG.json | 4 ++++ contracts/exchange-libs/CHANGELOG.json | 4 ++++ contracts/exchange/CHANGELOG.json | 4 ++++ contracts/extensions/CHANGELOG.json | 4 ++++ contracts/multisig/CHANGELOG.json | 4 ++++ contracts/utils/CHANGELOG.json | 9 ++++++++ packages/dev-utils/CHANGELOG.json | 9 ++++++++ packages/migrations/CHANGELOG.json | 9 ++++++++ packages/migrations/src/migrate_testnet.ts | 24 +++++++++++++++++++++ 14 files changed, 91 insertions(+) create mode 100644 packages/migrations/src/migrate_testnet.ts diff --git a/contracts/asset-proxy/CHANGELOG.json b/contracts/asset-proxy/CHANGELOG.json index 04b23e91e7..a7c7261fa3 100644 --- a/contracts/asset-proxy/CHANGELOG.json +++ b/contracts/asset-proxy/CHANGELOG.json @@ -17,6 +17,10 @@ { "note": "Integration testing for ERC1155Proxy", "pr": 1673 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/coordinator/CHANGELOG.json b/contracts/coordinator/CHANGELOG.json index 9ad24493b7..1e302a535a 100644 --- a/contracts/coordinator/CHANGELOG.json +++ b/contracts/coordinator/CHANGELOG.json @@ -16,6 +16,10 @@ { "note": "Set `evmVersion` to `constantinople`", "pr": 1707 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/erc1155/CHANGELOG.json b/contracts/erc1155/CHANGELOG.json index 1abe96bd7e..f230b4ae68 100644 --- a/contracts/erc1155/CHANGELOG.json +++ b/contracts/erc1155/CHANGELOG.json @@ -14,6 +14,10 @@ { "note": "Created ERC1155 contracts package", "pr": 1657 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ] } diff --git a/contracts/erc20/CHANGELOG.json b/contracts/erc20/CHANGELOG.json index b6c7b7d778..971fdadd7c 100644 --- a/contracts/erc20/CHANGELOG.json +++ b/contracts/erc20/CHANGELOG.json @@ -5,6 +5,10 @@ { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/erc721/CHANGELOG.json b/contracts/erc721/CHANGELOG.json index 89ce021447..0146bdd7ad 100644 --- a/contracts/erc721/CHANGELOG.json +++ b/contracts/erc721/CHANGELOG.json @@ -5,6 +5,10 @@ { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/exchange-forwarder/CHANGELOG.json b/contracts/exchange-forwarder/CHANGELOG.json index 2a3ca9a5b2..3ea44d584c 100644 --- a/contracts/exchange-forwarder/CHANGELOG.json +++ b/contracts/exchange-forwarder/CHANGELOG.json @@ -5,6 +5,10 @@ { "note": "Do not reexport external dependencies", "pr": 1682 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/exchange-libs/CHANGELOG.json b/contracts/exchange-libs/CHANGELOG.json index 17a316cd0a..8b7f667c76 100644 --- a/contracts/exchange-libs/CHANGELOG.json +++ b/contracts/exchange-libs/CHANGELOG.json @@ -5,6 +5,10 @@ { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/exchange/CHANGELOG.json b/contracts/exchange/CHANGELOG.json index 6febfdcf3a..3e3d8519f7 100644 --- a/contracts/exchange/CHANGELOG.json +++ b/contracts/exchange/CHANGELOG.json @@ -13,6 +13,10 @@ { "note": "Integration testing for ERC1155Proxy", "pr": 1673 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/extensions/CHANGELOG.json b/contracts/extensions/CHANGELOG.json index a2d3074c38..fd66abf623 100644 --- a/contracts/extensions/CHANGELOG.json +++ b/contracts/extensions/CHANGELOG.json @@ -9,6 +9,10 @@ { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/multisig/CHANGELOG.json b/contracts/multisig/CHANGELOG.json index 21c0764323..56cc84eecc 100644 --- a/contracts/multisig/CHANGELOG.json +++ b/contracts/multisig/CHANGELOG.json @@ -5,6 +5,10 @@ { "note": "Do not reexport external dependencies", "pr": 1682 + }, + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/utils/CHANGELOG.json b/contracts/utils/CHANGELOG.json index 57e078b843..293963bcca 100644 --- a/contracts/utils/CHANGELOG.json +++ b/contracts/utils/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "3.1.0", + "changes": [ + { + "note": "Added `startProviderEngine` to `providerUtils`. Preventing excess block polling", + "pr": 1695 + } + ] + }, { "version": "3.0.0", "changes": [ diff --git a/packages/dev-utils/CHANGELOG.json b/packages/dev-utils/CHANGELOG.json index c818a19bcd..3915f7d5d6 100644 --- a/packages/dev-utils/CHANGELOG.json +++ b/packages/dev-utils/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "2.2.0", + "changes": [ + { + "note": "Added `startProviderEngine` to `providerUtils`. Preventing excess block polling", + "pr": 1695 + } + ] + }, { "timestamp": 1553091633, "version": "2.1.4", diff --git a/packages/migrations/CHANGELOG.json b/packages/migrations/CHANGELOG.json index e555ad5788..0545310cfa 100644 --- a/packages/migrations/CHANGELOG.json +++ b/packages/migrations/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "4.1.0", + "changes": [ + { + "note": "Added `startProviderEngine` to `providerUtils`. Preventing excess block polling", + "pr": 1695 + } + ] + }, { "timestamp": 1553091633, "version": "4.0.4", diff --git a/packages/migrations/src/migrate_testnet.ts b/packages/migrations/src/migrate_testnet.ts new file mode 100644 index 0000000000..60400e29fe --- /dev/null +++ b/packages/migrations/src/migrate_testnet.ts @@ -0,0 +1,24 @@ +#!/usr/bin/env node +import { devConstants } from '@0x/dev-utils'; +import { MnemonicWalletSubprovider, RPCSubprovider, Web3ProviderEngine } from '@0x/subproviders'; +import { logUtils, providerUtils } from '@0x/utils'; + +import { runMigrationsAsync } from './migration'; + +(async () => { + let txDefaults; + const provider = new Web3ProviderEngine(); + const mnemonic = 'concert load couple harbor equip island argue ramp clarify fence smart topic'; + provider.addProvider(new MnemonicWalletSubprovider({ mnemonic })); + provider.addProvider(new RPCSubprovider('http://localhost:8545')); + providerUtils.startProviderEngine(provider); + + txDefaults = { + from: devConstants.TESTRPC_FIRST_ADDRESS, + }; + await runMigrationsAsync(provider, txDefaults); + process.exit(0); +})().catch(err => { + logUtils.log(err); + process.exit(1); +}); From c0288c5f26f5ba712f4f76228f33d66808bc8774 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Tue, 19 Mar 2019 14:17:39 +0100 Subject: [PATCH 68/95] Fix changelog, remove migrate_testnet --- packages/migrations/src/migrate_testnet.ts | 24 ---------------------- 1 file changed, 24 deletions(-) delete mode 100644 packages/migrations/src/migrate_testnet.ts diff --git a/packages/migrations/src/migrate_testnet.ts b/packages/migrations/src/migrate_testnet.ts deleted file mode 100644 index 60400e29fe..0000000000 --- a/packages/migrations/src/migrate_testnet.ts +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env node -import { devConstants } from '@0x/dev-utils'; -import { MnemonicWalletSubprovider, RPCSubprovider, Web3ProviderEngine } from '@0x/subproviders'; -import { logUtils, providerUtils } from '@0x/utils'; - -import { runMigrationsAsync } from './migration'; - -(async () => { - let txDefaults; - const provider = new Web3ProviderEngine(); - const mnemonic = 'concert load couple harbor equip island argue ramp clarify fence smart topic'; - provider.addProvider(new MnemonicWalletSubprovider({ mnemonic })); - provider.addProvider(new RPCSubprovider('http://localhost:8545')); - providerUtils.startProviderEngine(provider); - - txDefaults = { - from: devConstants.TESTRPC_FIRST_ADDRESS, - }; - await runMigrationsAsync(provider, txDefaults); - process.exit(0); -})().catch(err => { - logUtils.log(err); - process.exit(1); -}); From 47bbcb99352512894abc55680d29719051379c0c Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Wed, 20 Mar 2019 11:36:30 +0100 Subject: [PATCH 69/95] Add HACK explanation --- packages/utils/src/provider_utils.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/utils/src/provider_utils.ts b/packages/utils/src/provider_utils.ts index 78a5182ed7..a7b82fbdf9 100644 --- a/packages/utils/src/provider_utils.ts +++ b/packages/utils/src/provider_utils.ts @@ -16,6 +16,10 @@ export const providerUtils = { if (providerEngine.start === undefined) { throw new Error(`Invalid Web3ProviderEngine`); } + // HACK: When calling start() Web3ProviderEngine starts a block polling service + // this continuously pulls data from the network and can result in high data usage + // for long running services. If used in a front end application this can cause + // a high amount of load on a node (one request per user per block). providerEngine._ready.go(); providerEngine._running = true; }, From 4e8d0ac7cbf4c016ff0ae98afee84fa0db3f2e51 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Wed, 20 Mar 2019 13:48:38 +0100 Subject: [PATCH 70/95] Add IAssetProxy to python --- .../artifacts/IAssetProxy.json | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/IAssetProxy.json diff --git a/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/IAssetProxy.json b/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/IAssetProxy.json new file mode 100644 index 0000000000..8e4a4efdcd --- /dev/null +++ b/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/IAssetProxy.json @@ -0,0 +1,185 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "IAssetProxy", + "compilerOutput": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "target", + "type": "address" + } + ], + "name": "addAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "target", + "type": "address" + } + ], + "name": "removeAuthorizedAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "target", + "type": "address" + }, + { + "name": "index", + "type": "uint256" + } + ], + "name": "removeAuthorizedAddressAtIndex", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "assetData", + "type": "bytes" + }, + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getProxyId", + "outputs": [ + { + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getAuthorizedAddresses", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x", + "opcodes": "", + "sourceMap": "" + } + } + }, + "sources": { + "src/interfaces/IAssetProxy.sol": { + "id": 2 + }, + "src/interfaces/IAuthorizable.sol": { + "id": 3 + }, + "@0x/contracts-utils/contracts/src/interfaces/IOwnable.sol": { + "id": 6 + } + }, + "sourceCodes": { + "src/interfaces/IAssetProxy.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.4.24;\n\nimport \"./IAuthorizable.sol\";\n\n\ncontract IAssetProxy is\n IAuthorizable\n{\n /// @dev Transfers assets. Either succeeds or throws.\n /// @param assetData Byte array encoded for the respective asset proxy.\n /// @param from Address to transfer asset from.\n /// @param to Address to transfer asset to.\n /// @param amount Amount of asset to transfer.\n function transferFrom(\n bytes assetData,\n address from,\n address to,\n uint256 amount\n )\n external;\n \n /// @dev Gets the proxy id associated with the proxy address.\n /// @return Proxy id.\n function getProxyId()\n external\n pure\n returns (bytes4);\n}\n", + "src/interfaces/IAuthorizable.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.4.24;\n\nimport \"@0x/contracts-utils/contracts/src/interfaces/IOwnable.sol\";\n\n\ncontract IAuthorizable is\n IOwnable\n{\n /// @dev Authorizes an address.\n /// @param target Address to authorize.\n function addAuthorizedAddress(address target)\n external;\n\n /// @dev Removes authorizion of an address.\n /// @param target Address to remove authorization from.\n function removeAuthorizedAddress(address target)\n external;\n\n /// @dev Removes authorizion of an address.\n /// @param target Address to remove authorization from.\n /// @param index Index of target in authorities array.\n function removeAuthorizedAddressAtIndex(\n address target,\n uint256 index\n )\n external;\n \n /// @dev Gets all authorized addresses.\n /// @return Array of authorized addresses.\n function getAuthorizedAddresses()\n external\n view\n returns (address[] memory);\n}\n", + "@0x/contracts-utils/contracts/src/interfaces/IOwnable.sol": "pragma solidity ^0.4.24;\n\n\ncontract IOwnable {\n\n function transferOwnership(address newOwner)\n public;\n}\n" + }, + "sourceTreeHashHex": "0x4fe33d3b00ae85e5c1d5478eeb1bf17fdc637fa0501dc1ff6fd1f871f87c83ca", + "compiler": { + "name": "solc", + "version": "0.4.25+commit.59dbf8f1.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000, + "details": { + "yul": true, + "deduplicate": true, + "cse": true, + "constantOptimizer": true + } + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "evmVersion": "byzantium", + "remappings": [ + "@0x/contracts-utils=/Users/jacob/projects/ethdev/0x/0x.js/contracts/asset-proxy/node_modules/@0x/contracts-utils" + ] + } + }, + "networks": {} +} From cee7803c375ae24729c0bfeeceaf73383c3ddc78 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Thu, 21 Mar 2019 12:02:38 +0100 Subject: [PATCH 71/95] Remove IAssetProxy --- .../artifacts/IAssetProxy.json | 185 ------------------ 1 file changed, 185 deletions(-) delete mode 100644 python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/IAssetProxy.json diff --git a/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/IAssetProxy.json b/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/IAssetProxy.json deleted file mode 100644 index 8e4a4efdcd..0000000000 --- a/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/IAssetProxy.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "schemaVersion": "2.0.0", - "contractName": "IAssetProxy", - "compilerOutput": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "target", - "type": "address" - } - ], - "name": "addAuthorizedAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "target", - "type": "address" - } - ], - "name": "removeAuthorizedAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "target", - "type": "address" - }, - { - "name": "index", - "type": "uint256" - } - ], - "name": "removeAuthorizedAddressAtIndex", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "assetData", - "type": "bytes" - }, - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getProxyId", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAuthorizedAddresses", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "0x", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "0x", - "opcodes": "", - "sourceMap": "" - } - } - }, - "sources": { - "src/interfaces/IAssetProxy.sol": { - "id": 2 - }, - "src/interfaces/IAuthorizable.sol": { - "id": 3 - }, - "@0x/contracts-utils/contracts/src/interfaces/IOwnable.sol": { - "id": 6 - } - }, - "sourceCodes": { - "src/interfaces/IAssetProxy.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.4.24;\n\nimport \"./IAuthorizable.sol\";\n\n\ncontract IAssetProxy is\n IAuthorizable\n{\n /// @dev Transfers assets. Either succeeds or throws.\n /// @param assetData Byte array encoded for the respective asset proxy.\n /// @param from Address to transfer asset from.\n /// @param to Address to transfer asset to.\n /// @param amount Amount of asset to transfer.\n function transferFrom(\n bytes assetData,\n address from,\n address to,\n uint256 amount\n )\n external;\n \n /// @dev Gets the proxy id associated with the proxy address.\n /// @return Proxy id.\n function getProxyId()\n external\n pure\n returns (bytes4);\n}\n", - "src/interfaces/IAuthorizable.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.4.24;\n\nimport \"@0x/contracts-utils/contracts/src/interfaces/IOwnable.sol\";\n\n\ncontract IAuthorizable is\n IOwnable\n{\n /// @dev Authorizes an address.\n /// @param target Address to authorize.\n function addAuthorizedAddress(address target)\n external;\n\n /// @dev Removes authorizion of an address.\n /// @param target Address to remove authorization from.\n function removeAuthorizedAddress(address target)\n external;\n\n /// @dev Removes authorizion of an address.\n /// @param target Address to remove authorization from.\n /// @param index Index of target in authorities array.\n function removeAuthorizedAddressAtIndex(\n address target,\n uint256 index\n )\n external;\n \n /// @dev Gets all authorized addresses.\n /// @return Array of authorized addresses.\n function getAuthorizedAddresses()\n external\n view\n returns (address[] memory);\n}\n", - "@0x/contracts-utils/contracts/src/interfaces/IOwnable.sol": "pragma solidity ^0.4.24;\n\n\ncontract IOwnable {\n\n function transferOwnership(address newOwner)\n public;\n}\n" - }, - "sourceTreeHashHex": "0x4fe33d3b00ae85e5c1d5478eeb1bf17fdc637fa0501dc1ff6fd1f871f87c83ca", - "compiler": { - "name": "solc", - "version": "0.4.25+commit.59dbf8f1.Linux.g++", - "settings": { - "optimizer": { - "enabled": true, - "runs": 1000000, - "details": { - "yul": true, - "deduplicate": true, - "cse": true, - "constantOptimizer": true - } - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode.object", - "evm.bytecode.sourceMap", - "evm.deployedBytecode.object", - "evm.deployedBytecode.sourceMap" - ] - } - }, - "evmVersion": "byzantium", - "remappings": [ - "@0x/contracts-utils=/Users/jacob/projects/ethdev/0x/0x.js/contracts/asset-proxy/node_modules/@0x/contracts-utils" - ] - } - }, - "networks": {} -} From 6a1caeb9a1005a1e5a12b48d17aba68cd7c86a79 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Thu, 21 Mar 2019 12:33:09 +0100 Subject: [PATCH 72/95] Update CHANGELOGs --- contracts/asset-proxy/CHANGELOG.json | 13 +++++++++---- contracts/coordinator/CHANGELOG.json | 13 +++++++++---- contracts/erc1155/CHANGELOG.json | 13 +++++++++---- contracts/erc20/CHANGELOG.json | 13 +++++++++---- contracts/erc721/CHANGELOG.json | 13 +++++++++---- contracts/exchange-forwarder/CHANGELOG.json | 13 +++++++++---- contracts/exchange-libs/CHANGELOG.json | 13 +++++++++---- contracts/exchange/CHANGELOG.json | 13 +++++++++---- contracts/extensions/CHANGELOG.json | 13 +++++++++---- contracts/multisig/CHANGELOG.json | 13 +++++++++---- 10 files changed, 90 insertions(+), 40 deletions(-) diff --git a/contracts/asset-proxy/CHANGELOG.json b/contracts/asset-proxy/CHANGELOG.json index a7c7261fa3..0116f1a6d4 100644 --- a/contracts/asset-proxy/CHANGELOG.json +++ b/contracts/asset-proxy/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "2.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "version": "2.0.0", "changes": [ @@ -17,10 +26,6 @@ { "note": "Integration testing for ERC1155Proxy", "pr": 1673 - }, - { - "note": "Run Web3ProviderEngine without excess block polling", - "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/coordinator/CHANGELOG.json b/contracts/coordinator/CHANGELOG.json index 1e302a535a..fbe2e916eb 100644 --- a/contracts/coordinator/CHANGELOG.json +++ b/contracts/coordinator/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "1.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "version": "1.0.0", "changes": [ @@ -16,10 +25,6 @@ { "note": "Set `evmVersion` to `constantinople`", "pr": 1707 - }, - { - "note": "Run Web3ProviderEngine without excess block polling", - "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/erc1155/CHANGELOG.json b/contracts/erc1155/CHANGELOG.json index f230b4ae68..1e6b1f1b08 100644 --- a/contracts/erc1155/CHANGELOG.json +++ b/contracts/erc1155/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "1.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "timestamp": 1553091633, "version": "1.0.1", @@ -14,10 +23,6 @@ { "note": "Created ERC1155 contracts package", "pr": 1657 - }, - { - "note": "Run Web3ProviderEngine without excess block polling", - "pr": 1695 } ] } diff --git a/contracts/erc20/CHANGELOG.json b/contracts/erc20/CHANGELOG.json index 971fdadd7c..c00e3660f3 100644 --- a/contracts/erc20/CHANGELOG.json +++ b/contracts/erc20/CHANGELOG.json @@ -1,14 +1,19 @@ [ + { + "version": "2.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "version": "2.0.0", "changes": [ { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 - }, - { - "note": "Run Web3ProviderEngine without excess block polling", - "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/erc721/CHANGELOG.json b/contracts/erc721/CHANGELOG.json index 0146bdd7ad..d968f52a47 100644 --- a/contracts/erc721/CHANGELOG.json +++ b/contracts/erc721/CHANGELOG.json @@ -1,14 +1,19 @@ [ + { + "version": "2.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "version": "2.0.0", "changes": [ { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 - }, - { - "note": "Run Web3ProviderEngine without excess block polling", - "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/exchange-forwarder/CHANGELOG.json b/contracts/exchange-forwarder/CHANGELOG.json index 3ea44d584c..7c90833219 100644 --- a/contracts/exchange-forwarder/CHANGELOG.json +++ b/contracts/exchange-forwarder/CHANGELOG.json @@ -1,14 +1,19 @@ [ + { + "version": "2.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "version": "2.0.0", "changes": [ { "note": "Do not reexport external dependencies", "pr": 1682 - }, - { - "note": "Run Web3ProviderEngine without excess block polling", - "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/exchange-libs/CHANGELOG.json b/contracts/exchange-libs/CHANGELOG.json index 8b7f667c76..d14239b46b 100644 --- a/contracts/exchange-libs/CHANGELOG.json +++ b/contracts/exchange-libs/CHANGELOG.json @@ -1,14 +1,19 @@ [ + { + "version": "2.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "version": "2.0.0", "changes": [ { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 - }, - { - "note": "Run Web3ProviderEngine without excess block polling", - "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/exchange/CHANGELOG.json b/contracts/exchange/CHANGELOG.json index 3e3d8519f7..3b5388d6f9 100644 --- a/contracts/exchange/CHANGELOG.json +++ b/contracts/exchange/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "2.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "version": "2.0.0", "changes": [ @@ -13,10 +22,6 @@ { "note": "Integration testing for ERC1155Proxy", "pr": 1673 - }, - { - "note": "Run Web3ProviderEngine without excess block polling", - "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/extensions/CHANGELOG.json b/contracts/extensions/CHANGELOG.json index fd66abf623..695aecd932 100644 --- a/contracts/extensions/CHANGELOG.json +++ b/contracts/extensions/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "3.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "version": "3.0.0", "changes": [ @@ -9,10 +18,6 @@ { "note": "Upgrade contracts to Solidity 0.5.5", "pr": 1682 - }, - { - "note": "Run Web3ProviderEngine without excess block polling", - "pr": 1695 } ], "timestamp": 1553091633 diff --git a/contracts/multisig/CHANGELOG.json b/contracts/multisig/CHANGELOG.json index 56cc84eecc..f4d9fc1a43 100644 --- a/contracts/multisig/CHANGELOG.json +++ b/contracts/multisig/CHANGELOG.json @@ -1,14 +1,19 @@ [ + { + "version": "3.1.0", + "changes": [ + { + "note": "Run Web3ProviderEngine without excess block polling", + "pr": 1695 + } + ] + }, { "version": "3.0.0", "changes": [ { "note": "Do not reexport external dependencies", "pr": 1682 - }, - { - "note": "Run Web3ProviderEngine without excess block polling", - "pr": 1695 } ], "timestamp": 1553091633 From deb7e955679f7efa4a7c1c3415d5c846f302fe37 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 21 Mar 2019 14:29:26 +0100 Subject: [PATCH 73/95] Revert change --- packages/typescript-typings/types/ganache-core/index.d.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/typescript-typings/types/ganache-core/index.d.ts b/packages/typescript-typings/types/ganache-core/index.d.ts index ebd288e2fb..e3cbcdad5c 100644 --- a/packages/typescript-typings/types/ganache-core/index.d.ts +++ b/packages/typescript-typings/types/ganache-core/index.d.ts @@ -1,7 +1,5 @@ declare module 'ganache-core' { - export interface GanacheProvider { - sendAsync(payload: JSONRPCRequestPayload, callback: JSONRPCErrorCallback): void; - } + const Provider = require('ethereum-types').Provider; export interface GanacheOpts { verbose?: boolean; logger?: { @@ -15,5 +13,5 @@ declare module 'ganache-core' { vmErrorsOnRPCResponse?: boolean; db_path?: string; } - export function provider(opts: GanacheOpts): GanacheProvider; + export function provider(opts: GanacheOpts): Provider; } From 39b93b88c5bf0463d7e0b71ebb4bb5d69339f10d Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 21 Mar 2019 14:32:21 +0100 Subject: [PATCH 74/95] Fix prettier --- contracts/tec/generated-artifacts/TEC.json | 700 ++++++++--------- .../tec/generated-artifacts/TestLibs.json | 296 +++---- .../tec/generated-artifacts/TestMixins.json | 566 +++++++------- contracts/tec/generated-wrappers/tec.ts | 184 ++--- contracts/tec/generated-wrappers/test_libs.ts | 69 +- .../tec/generated-wrappers/test_mixins.ts | 109 +-- .../contract_artifacts/Coordinator.json | 726 +++++++++--------- .../CoordinatorRegistry.json | 242 +++--- 8 files changed, 1452 insertions(+), 1440 deletions(-) diff --git a/contracts/tec/generated-artifacts/TEC.json b/contracts/tec/generated-artifacts/TEC.json index a1440f769c..7e79d5fae9 100644 --- a/contracts/tec/generated-artifacts/TEC.json +++ b/contracts/tec/generated-artifacts/TEC.json @@ -1,351 +1,351 @@ { - "schemaVersion": "2.0.0", - "contractName": "TEC", - "compilerOutput": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "hash", - "type": "bytes32" - }, - { - "name": "signature", - "type": "bytes" - } - ], - "name": "getSignerAddress", - "outputs": [ - { - "name": "signerAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "components": [ - { - "name": "makerAddress", - "type": "address" - }, - { - "name": "takerAddress", - "type": "address" - }, - { - "name": "feeRecipientAddress", - "type": "address" - }, - { - "name": "senderAddress", - "type": "address" - }, - { - "name": "makerAssetAmount", - "type": "uint256" - }, - { - "name": "takerAssetAmount", - "type": "uint256" - }, - { - "name": "makerFee", - "type": "uint256" - }, - { - "name": "takerFee", - "type": "uint256" - }, - { - "name": "expirationTimeSeconds", - "type": "uint256" - }, - { - "name": "salt", - "type": "uint256" - }, - { - "name": "makerAssetData", - "type": "bytes" - }, - { - "name": "takerAssetData", - "type": "bytes" - } - ], - "name": "orders", - "type": "tuple[]" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "assertValidTransactionOrdersApproval", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "assertValidTECApprovals", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EIP712_DOMAIN_HASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "executeTransaction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_exchange", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "0x60806040523480156200001157600080fd5b50604051602080620026558339810180604052620000339190810190620001f8565b604080517f454950373132446f6d61696e28000000000000000000000000000000000000006020808301919091527f737472696e67206e616d652c0000000000000000000000000000000000000000602d8301527f737472696e672076657273696f6e2c000000000000000000000000000000000060398301527f6164647265737320766572696679696e67436f6e74726163740000000000000060488301527f2900000000000000000000000000000000000000000000000000000000000000606183015282516042818403018152606283018085528151919092012060c2830190935260278082528493926200262e90608201398051602091820120604080518082018252600581527f312e302e3000000000000000000000000000000000000000000000000000000090840152805180840194909452838101919091527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060840152306080808501919091528151808503909101815260a09093019052815191012060005560018054600160a060020a031916600160a060020a03929092169190911790555062000240565b6000620001f182516200022d565b9392505050565b6000602082840312156200020b57600080fd5b6000620002198484620001e3565b949350505050565b600160a060020a031690565b60006200023a8262000221565b92915050565b6123de80620002506000396000f3fe608060405234801561001057600080fd5b5060043610610084576000357c0100000000000000000000000000000000000000000000000000000000900480636c42c8281161006d5780636c42c828146100c7578063e306f779146100da578063f50bb641146100ef57610084565b80630f7d8e391461008957806355fc233c146100b2575b600080fd5b61009c610097366004611b6a565b610102565b6040516100a9919061212b565b60405180910390f35b6100c56100c0366004611c50565b6104f7565b005b6100c56100d5366004611d3c565b610761565b6100e2610790565b6040516100a99190612139565b6100c56100fd366004611d3c565b610796565b6000808251111515610149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121e7565b60405180910390fd5b600061015483610840565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121d7565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff61090416565b905060006102c687602163ffffffff61090416565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff61090416565b9050600061041287602163ffffffff61090416565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b92915050565b60006105028661094f565b60408051600080825260208201909252845192935091905b818110156105ee576000868281518110151561053257fe5b9060200190602002015190506105466114fb565b5060408051606081018252868152602081018a905290810182905242821161059a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612197565b60006105a582610962565b905060006105ca828a878151811015156105bb57fe5b90602001906020020151610102565b90506105dc878263ffffffff61097016565b9650506001909301925061051a915050565b50865160005b818110156107555788516000908a908390811061060d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561063c5761074d565b6000898281518110151561064c57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106925761068a853263ffffffff61097016565b94505061074d565b60006106a4868363ffffffff610a3a16565b90508015156106df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612157565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806107125750610712863263ffffffff610a3a16565b151561074a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121f7565b50505b6001016105f4565b50505050505050505050565b60606107708560400151610ab2565b90506000815111156107895761078985828686866104f7565b5050505050565b60005481565b6107a284848484610761565b6001548451602086015160408088015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361080893909290918990600401612217565b600060405180830381600087803b15801561082257600080fd5b505af1158015610836573d6000803e3d6000fd5b5050505050505050565b600080825111151561087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121c7565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108ae57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610946576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121a7565b50016020015190565b60006104f161095d83610f6a565b611126565b60006104f161095d83611166565b8151604051606091849060208082028084018201929101828510156109c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612187565b828511156109db576109d48585836112f8565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610a0857fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b81811015610aa7578373ffffffffffffffffffffffffffffffffffffffff168582815181101515610a6e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415610a9f576001925050506104f1565b600101610a41565b506000949350505050565b60606000610ac6838263ffffffff6113bc16565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610b5957507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610ba557507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610c2f57610bb2611520565b8351610bc890859060049063ffffffff61142916565b806020019051610bdb9190810190611bbc565b604080516001808252818301909252919250816020015b610bfa611520565b815260200190600190039081610bf257905050925080836000815181101515610c1f57fe5b6020908102909101015250610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610cc057507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610d0c57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610d5857507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610da457507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610df057507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610e3c57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610e71578251610e5790849060049063ffffffff61142916565b806020019051610e6a9190810190611b2d565b9150610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610f6457610ec3611520565b610ecb611520565b8451610ee190869060049063ffffffff61142916565b806020019051610ef49190810190611bf1565b60408051600280825260608201909252929450909250816020015b610f17611520565b815260200190600190039081610f0f57905050935081846000815181101515610f3c57fe5b602090810290910101528351819085906001908110610f5757fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b6020831061109e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611061565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256123808239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b6020831061128657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611249565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611322576001816020036101000a0380198351168185511680821786525050506113b7565b8282141561132f576113b7565b828211156113695760208103905080820181840181515b82851015611361578451865260209586019590940193611346565b9052506113b7565b60208103905080820181840183515b818612156113b257825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283019290910190611378565b855250505b505050565b6000816004018351101515156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612207565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612167565b83518211156114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612177565b8282036040519080825280601f01601f1916602001820160405280156114cd576020820181803883390190505b5090506114ee6114dc826114f5565b846114e6876114f5565b0183516112f8565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114ee82356122f4565b60006114ee82516122f4565b6000601f8201831361160357600080fd5b813561161661161182612289565b612262565b81815260209384019390925082018360005b83811015611654578135860161163e8882611794565b8452506020928301929190910190600101611628565b5050505092915050565b6000601f8201831361166f57600080fd5b815161167d61161182612289565b81815260209384019390925082018360005b8381101561165457815186016116a58882611972565b845250602092830192919091019060010161168f565b6000601f820183136116cc57600080fd5b81356116da61161182612289565b81815260209384019390925082018360005b8381101561165457813586016117028882611829565b84525060209283019291909101906001016116ec565b6000601f8201831361172957600080fd5b813561173761161182612289565b9150818183526020840193506020810190508385602084028201111561175c57600080fd5b60005b8381101561165457816117728882611788565b845250602092830192919091019060010161175f565b60006114ee82356122ff565b6000601f820183136117a557600080fd5b81356117b3611611826122aa565b915080825260208301602083018583830111156117cf57600080fd5b6117da83828461231b565b50505092915050565b6000601f820183136117f457600080fd5b8151611802611611826122aa565b9150808252602083016020830185838301111561181e57600080fd5b6117da838284612327565b6000610180828403121561183c57600080fd5b611847610180612262565b9050600061185584846115da565b8252506020611866848483016115da565b602083015250604061187a848285016115da565b604083015250606061188e848285016115da565b60608301525060806118a284828501611788565b60808301525060a06118b684828501611788565b60a08301525060c06118ca84828501611788565b60c08301525060e06118de84828501611788565b60e0830152506101006118f384828501611788565b6101008301525061012061190984828501611788565b6101208301525061014082013567ffffffffffffffff81111561192b57600080fd5b61193784828501611794565b6101408301525061016082013567ffffffffffffffff81111561195957600080fd5b61196584828501611794565b6101608301525092915050565b6000610180828403121561198557600080fd5b611990610180612262565b9050600061199e84846115e6565b82525060206119af848483016115e6565b60208301525060406119c3848285016115e6565b60408301525060606119d7848285016115e6565b60608301525060806119eb84828501611b21565b60808301525060a06119ff84828501611b21565b60a08301525060c0611a1384828501611b21565b60c08301525060e0611a2784828501611b21565b60e083015250610100611a3c84828501611b21565b61010083015250610120611a5284828501611b21565b6101208301525061014082015167ffffffffffffffff811115611a7457600080fd5b611a80848285016117e3565b6101408301525061016082015167ffffffffffffffff811115611aa257600080fd5b611965848285016117e3565b600060608284031215611ac057600080fd5b611aca6060612262565b90506000611ad88484611788565b8252506020611ae9848483016115da565b602083015250604082013567ffffffffffffffff811115611b0957600080fd5b611b1584828501611794565b60408301525092915050565b60006114ee82516122ff565b600060208284031215611b3f57600080fd5b815167ffffffffffffffff811115611b5657600080fd5b611b628482850161165e565b949350505050565b60008060408385031215611b7d57600080fd5b6000611b898585611788565b925050602083013567ffffffffffffffff811115611ba657600080fd5b611bb285828601611794565b9150509250929050565b600060208284031215611bce57600080fd5b815167ffffffffffffffff811115611be557600080fd5b611b6284828501611972565b60008060408385031215611c0457600080fd5b825167ffffffffffffffff811115611c1b57600080fd5b611c2785828601611972565b925050602083015167ffffffffffffffff811115611c4457600080fd5b611bb285828601611972565b600080600080600060a08688031215611c6857600080fd5b853567ffffffffffffffff811115611c7f57600080fd5b611c8b88828901611aae565b955050602086013567ffffffffffffffff811115611ca857600080fd5b611cb4888289016116bb565b945050604086013567ffffffffffffffff811115611cd157600080fd5b611cdd88828901611794565b935050606086013567ffffffffffffffff811115611cfa57600080fd5b611d0688828901611718565b925050608086013567ffffffffffffffff811115611d2357600080fd5b611d2f888289016115f2565b9150509295509295909350565b60008060008060808587031215611d5257600080fd5b843567ffffffffffffffff811115611d6957600080fd5b611d7587828801611aae565b945050602085013567ffffffffffffffff811115611d9257600080fd5b611d9e87828801611794565b935050604085013567ffffffffffffffff811115611dbb57600080fd5b611dc787828801611718565b925050606085013567ffffffffffffffff811115611de457600080fd5b611df0878288016115f2565b91505092959194509250565b611e05816122f4565b82525050565b611e05816122ff565b6000611e1f826122f0565b808452611e33816020860160208601612327565b611e3c81612357565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611dfc565b602081016104f18284611e0b565b602080825281016104f181611e49565b602080825281016104f181611e79565b602080825281016104f181611ea9565b602080825281016104f181611ed9565b602080825281016104f181611f09565b602080825281016104f181611f39565b602080825281016104f181611f69565b602080825281016104f181611fbf565b602080825281016104f181611fef565b602080825281016104f181612045565b602080825281016104f181612075565b602080825281016104f1816120a5565b602080825281016104f1816120d5565b608081016122258287611e0b565b6122326020830186611dfc565b81810360408301526122448185611e14565b905081810360608301526122588184611e14565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561228157600080fd5b604052919050565b600067ffffffffffffffff8211156122a057600080fd5b5060209081020190565b600067ffffffffffffffff8211156122c157600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612302565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561234257818101518382015260200161232a565b83811115612351576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a723058207d14ce46d6a1f41fea9ab5b5291d1e35347eb8bb6b321fac4db6b2187d7a44836c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x2655 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x33 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x1F8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0x2D DUP4 ADD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0x39 DUP4 ADD MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0x48 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x61 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x42 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x62 DUP4 ADD DUP1 DUP6 MSTORE DUP2 MLOAD SWAP2 SWAP1 SWAP3 ADD KECCAK256 PUSH1 0xC2 DUP4 ADD SWAP1 SWAP4 MSTORE PUSH1 0x27 DUP1 DUP3 MSTORE DUP5 SWAP4 SWAP3 PUSH3 0x262E SWAP1 PUSH1 0x82 ADD CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE DUP1 MLOAD DUP1 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP4 ADD SWAP1 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x240 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1F1 DUP3 MLOAD PUSH3 0x22D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x219 DUP5 DUP5 PUSH3 0x1E3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x23A DUP3 PUSH3 0x221 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x23DE DUP1 PUSH3 0x250 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x6C42C828 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xF50BB641 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6A JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x212B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C50 JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x2139 JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x796 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x840 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x502 DUP7 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x532 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x546 PUSH2 0x14FB JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A5 DUP3 PUSH2 0x962 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5CA DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x5BB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x5DC DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x51A SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x755 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x60D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x63C JUMPI PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x64C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x692 JUMPI PUSH2 0x68A DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A4 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x712 JUMPI POP PUSH2 0x712 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21F7 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5F4 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x770 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x789 JUMPI PUSH2 0x789 DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4F7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x7A2 DUP5 DUP5 DUP5 DUP5 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP5 MLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 DUP1 DUP9 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x808 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2217 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x87E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21C7 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x8AE JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0xF6A JUMP JUMPDEST PUSH2 0x1126 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0x1166 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x9C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2187 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x9DB JUMPI PUSH2 0x9D4 DUP6 DUP6 DUP4 PUSH2 0x12F8 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA08 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAA7 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA6E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA9F JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xA41 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xAC6 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x13BC AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB59 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBA5 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xC2F JUMPI PUSH2 0xBB2 PUSH2 0x1520 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xBC8 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xBDB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xBFA PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBF2 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC1F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xCC0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD0C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD58 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDA4 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDF0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xE3C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xE71 JUMPI DUP3 MLOAD PUSH2 0xE57 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE6A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B2D JUMP JUMPDEST SWAP2 POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xF64 JUMPI PUSH2 0xEC3 PUSH2 0x1520 JUMP JUMPDEST PUSH2 0xECB PUSH2 0x1520 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xEE1 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xEF4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xF17 PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xF0F JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xF57 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x109E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1061 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x2380 DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1286 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1249 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1322 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x132F JUMPI PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1369 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1361 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x1346 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x13B2 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1378 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2207 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x1465 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2167 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2177 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x14EE PUSH2 0x14DC DUP3 PUSH2 0x14F5 JUMP JUMPDEST DUP5 PUSH2 0x14E6 DUP8 PUSH2 0x14F5 JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x12F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1603 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1616 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0x2262 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x163E DUP9 DUP3 PUSH2 0x1794 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1628 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x166F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x167D PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x16A5 DUP9 DUP3 PUSH2 0x1972 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x168F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1702 DUP9 DUP3 PUSH2 0x1829 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x16EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1737 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x175C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 PUSH2 0x1772 DUP9 DUP3 PUSH2 0x1788 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17B3 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x231B JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1802 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x181E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x2327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x183C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1847 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1855 DUP5 DUP5 PUSH2 0x15DA JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1866 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x187A DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x188E DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x18A2 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x18B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x18CA DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x18DE DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x18F3 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1909 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1937 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1985 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1990 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199E DUP5 DUP5 PUSH2 0x15E6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x19AF DUP5 DUP5 DUP4 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x19C3 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x19D7 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x19EB DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x19FF DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1A13 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1A27 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1A52 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A80 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1ACA PUSH1 0x60 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AD8 DUP5 DUP5 PUSH2 0x1788 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1AE9 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B15 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x165E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B89 DUP6 DUP6 PUSH2 0x1788 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C8B DUP9 DUP3 DUP10 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CB4 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CDD DUP9 DUP3 DUP10 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP9 DUP3 DUP10 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D2F DUP9 DUP3 DUP10 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1D52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D75 DUP8 DUP3 DUP9 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D9E DUP8 DUP3 DUP9 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC7 DUP8 DUP3 DUP9 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DF0 DUP8 DUP3 DUP9 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22F4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E1F DUP3 PUSH2 0x22F0 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E33 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2327 JUMP JUMPDEST PUSH2 0x1E3C DUP2 PUSH2 0x2357 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1E0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E79 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1EA9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F39 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F69 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FEF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2045 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2075 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20A5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2225 DUP3 DUP8 PUSH2 0x1E0B JUMP JUMPDEST PUSH2 0x2232 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1DFC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2244 DUP2 DUP6 PUSH2 0x1E14 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2258 DUP2 DUP5 PUSH2 0x1E14 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2302 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2342 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x232A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A723058207D14CE46 0xd6 LOG1 DELEGATECALL 0x1f 0xea SWAP11 0xb5 0xb5 0x29 SAR 0x1e CALLDATALOAD CALLVALUE PUSH31 0xB8BB6B321FAC4DB6B2187D7A44836C6578706572696D656E74616CF5003730 PUSH25 0x2050726F746F636F6C20547261646520457865637574696F6E KECCAK256 NUMBER PUSH16 0x6F7264696E61746F7200000000000000 ", - "sourceMap": "821:203:3:-;;;937:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;937:85:3;;;;;;;;;;;;;;;;;;;;;;1083:148:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;1083:148:9;;;;;;1073:159;;;;;;;1549:18;;;;;;;;;;1005:9:3;;1073:159:9;1549:18;;;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;;;;;;;;;;;;;1583:39;1454:214;;;;1652:4;1454:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1454:214:9;;;;;;1444:225;;;;;-1:-1:-1;1423:246:9;830:8:8;:35;;-1:-1:-1;;;;;;830:35:8;-1:-1:-1;;;;;830:35:8;;;;;;;;;;-1:-1:-1;821:203:3;;5:122:-1;;83:39;114:6;108:13;83:39;;;74:48;68:59;-1:-1;;;68:59;134:263;;249:2;237:9;228:7;224:23;220:32;217:2;;;265:1;262;255:12;217:2;300:1;317:64;373:7;353:9;317:64;;;307:74;211:186;-1:-1;;;;211:186;404:128;-1:-1;;;;;473:54;;456:76;539:105;;608:31;633:5;608:31;;;597:42;591:53;-1:-1;;591:53;;821:203:3;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b5060043610610084576000357c0100000000000000000000000000000000000000000000000000000000900480636c42c8281161006d5780636c42c828146100c7578063e306f779146100da578063f50bb641146100ef57610084565b80630f7d8e391461008957806355fc233c146100b2575b600080fd5b61009c610097366004611b6a565b610102565b6040516100a9919061212b565b60405180910390f35b6100c56100c0366004611c50565b6104f7565b005b6100c56100d5366004611d3c565b610761565b6100e2610790565b6040516100a99190612139565b6100c56100fd366004611d3c565b610796565b6000808251111515610149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121e7565b60405180910390fd5b600061015483610840565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121d7565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff61090416565b905060006102c687602163ffffffff61090416565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff61090416565b9050600061041287602163ffffffff61090416565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b92915050565b60006105028661094f565b60408051600080825260208201909252845192935091905b818110156105ee576000868281518110151561053257fe5b9060200190602002015190506105466114fb565b5060408051606081018252868152602081018a905290810182905242821161059a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612197565b60006105a582610962565b905060006105ca828a878151811015156105bb57fe5b90602001906020020151610102565b90506105dc878263ffffffff61097016565b9650506001909301925061051a915050565b50865160005b818110156107555788516000908a908390811061060d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561063c5761074d565b6000898281518110151561064c57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106925761068a853263ffffffff61097016565b94505061074d565b60006106a4868363ffffffff610a3a16565b90508015156106df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612157565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806107125750610712863263ffffffff610a3a16565b151561074a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121f7565b50505b6001016105f4565b50505050505050505050565b60606107708560400151610ab2565b90506000815111156107895761078985828686866104f7565b5050505050565b60005481565b6107a284848484610761565b6001548451602086015160408088015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361080893909290918990600401612217565b600060405180830381600087803b15801561082257600080fd5b505af1158015610836573d6000803e3d6000fd5b5050505050505050565b600080825111151561087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121c7565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108ae57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610946576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121a7565b50016020015190565b60006104f161095d83610f6a565b611126565b60006104f161095d83611166565b8151604051606091849060208082028084018201929101828510156109c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612187565b828511156109db576109d48585836112f8565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610a0857fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b81811015610aa7578373ffffffffffffffffffffffffffffffffffffffff168582815181101515610a6e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415610a9f576001925050506104f1565b600101610a41565b506000949350505050565b60606000610ac6838263ffffffff6113bc16565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610b5957507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610ba557507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610c2f57610bb2611520565b8351610bc890859060049063ffffffff61142916565b806020019051610bdb9190810190611bbc565b604080516001808252818301909252919250816020015b610bfa611520565b815260200190600190039081610bf257905050925080836000815181101515610c1f57fe5b6020908102909101015250610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610cc057507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610d0c57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610d5857507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610da457507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610df057507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610e3c57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610e71578251610e5790849060049063ffffffff61142916565b806020019051610e6a9190810190611b2d565b9150610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610f6457610ec3611520565b610ecb611520565b8451610ee190869060049063ffffffff61142916565b806020019051610ef49190810190611bf1565b60408051600280825260608201909252929450909250816020015b610f17611520565b815260200190600190039081610f0f57905050935081846000815181101515610f3c57fe5b602090810290910101528351819085906001908110610f5757fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b6020831061109e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611061565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256123808239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b6020831061128657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611249565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611322576001816020036101000a0380198351168185511680821786525050506113b7565b8282141561132f576113b7565b828211156113695760208103905080820181840181515b82851015611361578451865260209586019590940193611346565b9052506113b7565b60208103905080820181840183515b818612156113b257825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283019290910190611378565b855250505b505050565b6000816004018351101515156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612207565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612167565b83518211156114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612177565b8282036040519080825280601f01601f1916602001820160405280156114cd576020820181803883390190505b5090506114ee6114dc826114f5565b846114e6876114f5565b0183516112f8565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114ee82356122f4565b60006114ee82516122f4565b6000601f8201831361160357600080fd5b813561161661161182612289565b612262565b81815260209384019390925082018360005b83811015611654578135860161163e8882611794565b8452506020928301929190910190600101611628565b5050505092915050565b6000601f8201831361166f57600080fd5b815161167d61161182612289565b81815260209384019390925082018360005b8381101561165457815186016116a58882611972565b845250602092830192919091019060010161168f565b6000601f820183136116cc57600080fd5b81356116da61161182612289565b81815260209384019390925082018360005b8381101561165457813586016117028882611829565b84525060209283019291909101906001016116ec565b6000601f8201831361172957600080fd5b813561173761161182612289565b9150818183526020840193506020810190508385602084028201111561175c57600080fd5b60005b8381101561165457816117728882611788565b845250602092830192919091019060010161175f565b60006114ee82356122ff565b6000601f820183136117a557600080fd5b81356117b3611611826122aa565b915080825260208301602083018583830111156117cf57600080fd5b6117da83828461231b565b50505092915050565b6000601f820183136117f457600080fd5b8151611802611611826122aa565b9150808252602083016020830185838301111561181e57600080fd5b6117da838284612327565b6000610180828403121561183c57600080fd5b611847610180612262565b9050600061185584846115da565b8252506020611866848483016115da565b602083015250604061187a848285016115da565b604083015250606061188e848285016115da565b60608301525060806118a284828501611788565b60808301525060a06118b684828501611788565b60a08301525060c06118ca84828501611788565b60c08301525060e06118de84828501611788565b60e0830152506101006118f384828501611788565b6101008301525061012061190984828501611788565b6101208301525061014082013567ffffffffffffffff81111561192b57600080fd5b61193784828501611794565b6101408301525061016082013567ffffffffffffffff81111561195957600080fd5b61196584828501611794565b6101608301525092915050565b6000610180828403121561198557600080fd5b611990610180612262565b9050600061199e84846115e6565b82525060206119af848483016115e6565b60208301525060406119c3848285016115e6565b60408301525060606119d7848285016115e6565b60608301525060806119eb84828501611b21565b60808301525060a06119ff84828501611b21565b60a08301525060c0611a1384828501611b21565b60c08301525060e0611a2784828501611b21565b60e083015250610100611a3c84828501611b21565b61010083015250610120611a5284828501611b21565b6101208301525061014082015167ffffffffffffffff811115611a7457600080fd5b611a80848285016117e3565b6101408301525061016082015167ffffffffffffffff811115611aa257600080fd5b611965848285016117e3565b600060608284031215611ac057600080fd5b611aca6060612262565b90506000611ad88484611788565b8252506020611ae9848483016115da565b602083015250604082013567ffffffffffffffff811115611b0957600080fd5b611b1584828501611794565b60408301525092915050565b60006114ee82516122ff565b600060208284031215611b3f57600080fd5b815167ffffffffffffffff811115611b5657600080fd5b611b628482850161165e565b949350505050565b60008060408385031215611b7d57600080fd5b6000611b898585611788565b925050602083013567ffffffffffffffff811115611ba657600080fd5b611bb285828601611794565b9150509250929050565b600060208284031215611bce57600080fd5b815167ffffffffffffffff811115611be557600080fd5b611b6284828501611972565b60008060408385031215611c0457600080fd5b825167ffffffffffffffff811115611c1b57600080fd5b611c2785828601611972565b925050602083015167ffffffffffffffff811115611c4457600080fd5b611bb285828601611972565b600080600080600060a08688031215611c6857600080fd5b853567ffffffffffffffff811115611c7f57600080fd5b611c8b88828901611aae565b955050602086013567ffffffffffffffff811115611ca857600080fd5b611cb4888289016116bb565b945050604086013567ffffffffffffffff811115611cd157600080fd5b611cdd88828901611794565b935050606086013567ffffffffffffffff811115611cfa57600080fd5b611d0688828901611718565b925050608086013567ffffffffffffffff811115611d2357600080fd5b611d2f888289016115f2565b9150509295509295909350565b60008060008060808587031215611d5257600080fd5b843567ffffffffffffffff811115611d6957600080fd5b611d7587828801611aae565b945050602085013567ffffffffffffffff811115611d9257600080fd5b611d9e87828801611794565b935050604085013567ffffffffffffffff811115611dbb57600080fd5b611dc787828801611718565b925050606085013567ffffffffffffffff811115611de457600080fd5b611df0878288016115f2565b91505092959194509250565b611e05816122f4565b82525050565b611e05816122ff565b6000611e1f826122f0565b808452611e33816020860160208601612327565b611e3c81612357565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611dfc565b602081016104f18284611e0b565b602080825281016104f181611e49565b602080825281016104f181611e79565b602080825281016104f181611ea9565b602080825281016104f181611ed9565b602080825281016104f181611f09565b602080825281016104f181611f39565b602080825281016104f181611f69565b602080825281016104f181611fbf565b602080825281016104f181611fef565b602080825281016104f181612045565b602080825281016104f181612075565b602080825281016104f1816120a5565b602080825281016104f1816120d5565b608081016122258287611e0b565b6122326020830186611dfc565b81810360408301526122448185611e14565b905081810360608301526122588184611e14565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561228157600080fd5b604052919050565b600067ffffffffffffffff8211156122a057600080fd5b5060209081020190565b600067ffffffffffffffff8211156122c157600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612302565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561234257818101518382015260200161232a565b83811115612351576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a723058207d14ce46d6a1f41fea9ab5b5291d1e35347eb8bb6b321fac4db6b2187d7a44836c6578706572696d656e74616cf50037", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x6C42C828 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xF50BB641 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6A JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x212B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C50 JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x2139 JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x796 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x840 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x502 DUP7 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x532 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x546 PUSH2 0x14FB JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A5 DUP3 PUSH2 0x962 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5CA DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x5BB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x5DC DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x51A SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x755 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x60D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x63C JUMPI PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x64C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x692 JUMPI PUSH2 0x68A DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A4 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x712 JUMPI POP PUSH2 0x712 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21F7 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5F4 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x770 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x789 JUMPI PUSH2 0x789 DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4F7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x7A2 DUP5 DUP5 DUP5 DUP5 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP5 MLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 DUP1 DUP9 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x808 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2217 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x87E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21C7 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x8AE JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0xF6A JUMP JUMPDEST PUSH2 0x1126 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0x1166 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x9C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2187 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x9DB JUMPI PUSH2 0x9D4 DUP6 DUP6 DUP4 PUSH2 0x12F8 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA08 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAA7 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA6E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA9F JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xA41 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xAC6 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x13BC AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB59 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBA5 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xC2F JUMPI PUSH2 0xBB2 PUSH2 0x1520 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xBC8 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xBDB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xBFA PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBF2 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC1F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xCC0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD0C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD58 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDA4 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDF0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xE3C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xE71 JUMPI DUP3 MLOAD PUSH2 0xE57 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE6A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B2D JUMP JUMPDEST SWAP2 POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xF64 JUMPI PUSH2 0xEC3 PUSH2 0x1520 JUMP JUMPDEST PUSH2 0xECB PUSH2 0x1520 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xEE1 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xEF4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xF17 PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xF0F JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xF57 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x109E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1061 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x2380 DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1286 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1249 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1322 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x132F JUMPI PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1369 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1361 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x1346 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x13B2 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1378 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2207 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x1465 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2167 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2177 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x14EE PUSH2 0x14DC DUP3 PUSH2 0x14F5 JUMP JUMPDEST DUP5 PUSH2 0x14E6 DUP8 PUSH2 0x14F5 JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x12F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1603 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1616 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0x2262 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x163E DUP9 DUP3 PUSH2 0x1794 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1628 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x166F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x167D PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x16A5 DUP9 DUP3 PUSH2 0x1972 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x168F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1702 DUP9 DUP3 PUSH2 0x1829 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x16EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1737 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x175C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 PUSH2 0x1772 DUP9 DUP3 PUSH2 0x1788 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17B3 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x231B JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1802 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x181E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x2327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x183C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1847 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1855 DUP5 DUP5 PUSH2 0x15DA JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1866 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x187A DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x188E DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x18A2 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x18B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x18CA DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x18DE DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x18F3 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1909 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1937 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1985 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1990 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199E DUP5 DUP5 PUSH2 0x15E6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x19AF DUP5 DUP5 DUP4 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x19C3 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x19D7 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x19EB DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x19FF DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1A13 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1A27 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1A52 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A80 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1ACA PUSH1 0x60 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AD8 DUP5 DUP5 PUSH2 0x1788 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1AE9 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B15 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x165E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B89 DUP6 DUP6 PUSH2 0x1788 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C8B DUP9 DUP3 DUP10 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CB4 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CDD DUP9 DUP3 DUP10 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP9 DUP3 DUP10 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D2F DUP9 DUP3 DUP10 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1D52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D75 DUP8 DUP3 DUP9 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D9E DUP8 DUP3 DUP9 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC7 DUP8 DUP3 DUP9 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DF0 DUP8 DUP3 DUP9 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22F4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E1F DUP3 PUSH2 0x22F0 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E33 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2327 JUMP JUMPDEST PUSH2 0x1E3C DUP2 PUSH2 0x2357 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1E0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E79 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1EA9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F39 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F69 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FEF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2045 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2075 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20A5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2225 DUP3 DUP8 PUSH2 0x1E0B JUMP JUMPDEST PUSH2 0x2232 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1DFC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2244 DUP2 DUP6 PUSH2 0x1E14 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2258 DUP2 DUP5 PUSH2 0x1E14 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2302 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2342 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x232A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A723058207D14CE46 0xd6 LOG1 DELEGATECALL 0x1f 0xea SWAP11 0xb5 0xb5 0x29 SAR 0x1e CALLDATALOAD CALLVALUE PUSH31 0xB8BB6B321FAC4DB6B2187D7A44836C6578706572696D656E74616CF5003700 ", - "sourceMap": "821:203:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;821:203:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3439:2912:1;;;;;;;;;:::i;:::-;;1981:853;;;;;;;;;:::i;1339:33:9:-;;;:::i;:::-;;;;;;;;1500:745:2;;;;;;;;;:::i;988:2549:0:-;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:0;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:0;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:0;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:0;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:0;;;;;;-1:-1:-1;2510:20:0;;-1:-1:-1;;;;;;2510:20:0;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:0;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:0;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:0;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:0;3499:31;;;;;;;;;;;988:2549;;;;;:::o;3439:2912:1:-;3813:23;3839:31;3858:11;3839:18;:31::i;:::-;3973:16;;;3987:1;3973:16;;;;;;;;;4027:25;;3813:57;;-1:-1:-1;3973:16:1;4027:25;4062:1090;4086:16;4082:1;:20;4062:1090;;;4162:44;4209:29;4239:1;4209:32;;;;;;;;;;;;;;;;;;4162:79;;4255:27;;:::i;:::-;-1:-1:-1;4285:222:1;;;;;;;;;;;;;;;;;;;;;;;4695:15;4656:54;;4569:191;;;;;;;;;;;;;;4839:20;4862:28;4881:8;4862:18;:28::i;:::-;4839:51;;4904:29;4936:53;4953:12;4967:18;4986:1;4967:21;;;;;;;;;;;;;;;;;;4936:16;:53::i;:::-;4904:85;-1:-1:-1;5088:53:1;:23;4904:85;5088:53;:30;:53;:::i;:::-;5062:79;-1:-1:-1;;4104:3:1;;;;;-1:-1:-1;4062:1090:1;;-1:-1:-1;;4062:1090:1;;-1:-1:-1;5193:13:1;;5170:20;5216:1129;5240:12;5236:1;:16;5216:1129;;;5351:9;;5386:1;;5351:6;;5358:1;;5351:9;;;;;;;;;;;;;;:23;;;:37;;;5347:84;;;5408:8;;5347:84;5537:23;5563:6;5570:1;5563:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;5610:28:1;;;5629:9;5610:28;5606:160;;;5684:41;:23;5715:9;5684:41;:30;:41;:::i;:::-;5658:67;;5743:8;;;5606:160;5857:20;5880:49;:23;5913:15;5880:49;:32;:49;:::i;:::-;5857:72;;5968:15;5943:100;;;;;;;;;;;;;;;;6201:25;;;;:38;;6230:9;6201:38;;:85;;-1:-1:-1;6243:43:1;:23;6276:9;6243:43;:32;:43;:::i;:::-;6176:158;;;;;;;;;;;;;;;;5216:1129;;;5254:3;;5216:1129;;;;3439:2912;;;;;;;;;:::o;1981:853::-;2350:30;2383:38;2404:11;:16;;;2383:20;:38::i;:::-;2350:71;;2508:1;2492:6;:13;:17;2488:340;;;2593:224;2647:11;2676:6;2700:20;2738:29;2785:18;2593:36;:224::i;:::-;1981:853;;;;;:::o;1339:33:9:-;;;;:::o;1500:745:2:-;1855:167;1892:11;1917:20;1951:29;1994:18;1855:23;:167::i;:::-;2068:8;;2109:16;;2139:25;;;;2178:16;;;;;2068:170;;;;;:8;;;;;:27;;:170;;2109:16;;2139:25;;2208:20;;2068:170;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2068:170:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2068:170:2;;;;1500:745;;;;:::o;8315:448:19:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:19;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:19;13631:2;13729:13;13723:20;;13292:490::o;1514:406:11:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:10:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;1089:2103:18:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:18;;-1:-1:-1;;;;;1089:2103:18;;;;:::o;3431:342::-;3580:19;;3543:4;;;3609:136;3633:6;3629:1;:10;3609:136;;;3683:6;3664:25;;:12;3677:1;3664:15;;;;;;;;;;;;;;;;;;:25;;;3660:75;;;3716:4;3709:11;;;;;;3660:75;3641:3;;3609:136;;;-1:-1:-1;3761:5:18;;3431:342;-1:-1:-1;;;;3431:342:18:o;6563:1760:1:-;6659:30;6705:15;6723:18;:4;6705:15;6723:18;:15;:18;:::i;:::-;6705:36;-1:-1:-1;6768:31:1;;;6780:19;6768:31;;:87;;-1:-1:-1;6815:40:1;;;6827:28;6815:40;6768:87;:142;;;-1:-1:-1;6871:39:1;;;6883:27;6871:39;6768:142;6751:1543;;;6971:27;;:::i;:::-;7044:11;;7030:26;;7044:4;;7041:1;;7030:26;:10;:26;:::i;:::-;7002:102;;;;;;;;;;;;;;7127:23;;;7148:1;7127:23;;;;;;;;;6970:134;;-1:-1:-1;7127:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7118:32;;7176:5;7164:6;7171:1;7164:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6751:1543:1;;;7215:38;;;7227:26;7215:38;;:101;;-1:-1:-1;7269:47:1;;;7281:35;7269:47;7215:101;:163;;;-1:-1:-1;7332:46:1;;;7344:34;7332:46;7215:163;:217;;;-1:-1:-1;7394:38:1;;;7406:26;7394:38;7215:217;:280;;;-1:-1:-1;7448:47:1;;;7460:35;7448:47;7215:280;:335;;;-1:-1:-1;7511:39:1;;;7523:27;7511:39;7215:335;:399;;;-1:-1:-1;7566:48:1;;;7578:36;7566:48;7215:399;7198:1096;;;7763:11;;7749:26;;7763:4;;7760:1;;7749:26;:10;:26;:::i;:::-;7721:104;;;;;;;;;;;;;;7710:115;;7198:1096;;;7846:33;;;7858:21;7846:33;7842:452;;;7940:31;;:::i;:::-;7973:32;;:::i;:::-;8051:11;;8037:26;;8051:4;;8048:1;;8037:26;:10;:26;:::i;:::-;8009:118;;;;;;;;;;;;;;8189:23;;;8210:1;8189:23;;;;;;;;;7939:188;;-1:-1:-1;7939:188:1;;-1:-1:-1;8189:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8180:32;;8238:9;8226:6;8233:1;8226:9;;;;;;;;;;;;;;;;;;:21;8261:9;;8273:10;;8261:6;;8268:1;;8261:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7842:452:1;-1:-1:-1;6563:1760:1;;;:::o;2167:1395:11:-;823:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;823:146:11;;;;;;;813:157;;;;;;;;;2410:16;;;;2400:27;;2283:14;;813:157;2283:14;;823:146;;;;2400:27;;;;823:146;2400:27;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2400:27:11;;;;;;;;;;;;2525:16;;2575:25;;;;2999:26;;;3125:15;;;3118:29;;;;3270:42;3251:62;;;3234:15;;;3227:87;;;;-1:-1:-1;;;;3364:2:11;3352:15;;3345:33;;;;-1:-1:-1;3519:3:11;3501:22;;;2167:1395::o;1872:924:9:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:10:-;810:183;;;;;;;;;;;;;;;;;;;2349:14;;;;810:183;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:10;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2476:40:10;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3229:15;;;3222:40;;;;3316:15;;;3309:49;;;;3424:2;3412:15;;3405:54;;;;-1:-1:-1;;3562:3:10;3544:22;;;;2248:1357;-1:-1:-1;;;2248:1357:10:o;1808:4337:19:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:19;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:19;1808:4337;;;:::o;15595:687::-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:19;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:19;87:34:-1;135:17;;-1:-1;6890:20:19;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;821:203:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;;728:14;357:611;;;;;;;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1457;;;;;;12605:3;12593:9;12584:7;12580:23;12576:33;12573:2;;;12622:1;12619;12612:12;12573:2;12657:31;;12708:18;12697:30;;12694:2;;;12740:1;12737;12730:12;12694:2;12760:87;12839:7;12830:6;12819:9;12815:22;12760:87;;;12750:97;;12636:217;12912:2;12901:9;12897:18;12884:32;12936:18;12928:6;12925:30;12922:2;;;12968:1;12965;12958:12;12922:2;12988:97;13077:7;13068:6;13057:9;13053:22;12988:97;;;12978:107;;12863:228;13150:2;13139:9;13135:18;13122:32;13174:18;13166:6;13163:30;13160:2;;;13206:1;13203;13196:12;13160:2;13226:62;13280:7;13271:6;13260:9;13256:22;13226:62;;;13216:72;;13101:193;13353:2;13342:9;13338:18;13325:32;13377:18;13369:6;13366:30;13363:2;;;13409:1;13406;13399:12;13363:2;13429:78;13499:7;13490:6;13479:9;13475:22;13429:78;;;13419:88;;13304:209;13572:3;13561:9;13557:19;13544:33;13597:18;13589:6;13586:30;13583:2;;;13629:1;13626;13619:12;13583:2;13649:83;13724:7;13715:6;13704:9;13700:22;13649:83;;;13639:93;;13523:215;12567:1181;;;;;;;;;13755:1157;;;;;14008:3;13996:9;13987:7;13983:23;13979:33;13976:2;;;14025:1;14022;14015:12;13976:2;14060:31;;14111:18;14100:30;;14097:2;;;14143:1;14140;14133:12;14097:2;14163:87;14242:7;14233:6;14222:9;14218:22;14163:87;;;14153:97;;14039:217;14315:2;14304:9;14300:18;14287:32;14339:18;14331:6;14328:30;14325:2;;;14371:1;14368;14361:12;14325:2;14391:62;14445:7;14436:6;14425:9;14421:22;14391:62;;;14381:72;;14266:193;14518:2;14507:9;14503:18;14490:32;14542:18;14534:6;14531:30;14528:2;;;14574:1;14571;14564:12;14528:2;14594:78;14664:7;14655:6;14644:9;14640:22;14594:78;;;14584:88;;14469:209;14737:2;14726:9;14722:18;14709:32;14761:18;14753:6;14750:30;14747:2;;;14793:1;14790;14783:12;14747:2;14813:83;14888:7;14879:6;14868:9;14864:22;14813:83;;;14803:93;;14688:214;13970:942;;;;;;;;14919:120;15002:31;15027:5;15002:31;;;14997:3;14990:44;14984:55;;;15046:120;15129:31;15154:5;15129:31;;15173:307;;15283:38;15315:5;15283:38;;;15338:6;15333:3;15326:19;15350:63;15406:6;15399:4;15394:3;15390:14;15383:4;15376:5;15372:16;15350:63;;;15445:29;15467:6;15445:29;;;15425:50;;;15438:4;15425:50;;15263:217;-1:-1;;;15263:217;15794:306;15959:2;15947:15;;15996:66;15991:2;15982:12;;15975:88;16091:2;16082:12;;15940:160;16109:306;16274:2;16262:15;;16311:66;16306:2;16297:12;;16290:88;16406:2;16397:12;;16255:160;16424:306;16589:2;16577:15;;16626:66;16621:2;16612:12;;16605:88;16721:2;16712:12;;16570:160;16739:306;16904:2;16892:15;;16941:66;16936:2;16927:12;;16920:88;17036:2;17027:12;;16885:160;17054:306;17219:2;17207:15;;17256:66;17251:2;17242:12;;17235:88;17351:2;17342:12;;17200:160;17369:306;17534:2;17522:15;;17571:66;17566:2;17557:12;;17550:88;17666:2;17657:12;;17515:160;17684:407;17849:2;17837:15;;17886:66;17881:2;17872:12;;17865:88;17987:66;17982:2;17973:12;;17966:88;18082:2;18073:12;;17830:261;18100:306;18265:2;18253:15;;18302:66;18297:2;18288:12;;18281:88;18397:2;18388:12;;18246:160;18415:407;18580:2;18568:15;;18617:66;18612:2;18603:12;;18596:88;18718:66;18713:2;18704:12;;18697:88;18813:2;18804:12;;18561:261;18831:306;18996:2;18984:15;;19033:66;19028:2;19019:12;;19012:88;19128:2;19119:12;;18977:160;19146:306;19311:2;19299:15;;19348:66;19343:2;19334:12;;19327:88;19443:2;19434:12;;19292:160;19461:306;19626:2;19614:15;;19663:66;19658:2;19649:12;;19642:88;19758:2;19749:12;;19607:160;19776:407;19941:2;19929:15;;19978:66;19973:2;19964:12;;19957:88;20079:66;20074:2;20065:12;;20058:88;20174:2;20165:12;;19922:261;20318:213;20436:2;20421:18;;20450:71;20425:9;20494:6;20450:71;;20538:213;20656:2;20641:18;;20670:71;20645:9;20714:6;20670:71;;20758:407;20949:2;20963:47;;;20934:18;;21024:131;20934:18;21024:131;;21172:407;21363:2;21377:47;;;21348:18;;21438:131;21348:18;21438:131;;21586:407;21777:2;21791:47;;;21762:18;;21852:131;21762:18;21852:131;;22000:407;22191:2;22205:47;;;22176:18;;22266:131;22176:18;22266:131;;22414:407;22605:2;22619:47;;;22590:18;;22680:131;22590:18;22680:131;;22828:407;23019:2;23033:47;;;23004:18;;23094:131;23004:18;23094:131;;23242:407;23433:2;23447:47;;;23418:18;;23508:131;23418:18;23508:131;;23656:407;23847:2;23861:47;;;23832:18;;23922:131;23832:18;23922:131;;24070:407;24261:2;24275:47;;;24246:18;;24336:131;24246:18;24336:131;;24484:407;24675:2;24689:47;;;24660:18;;24750:131;24660:18;24750:131;;24898:407;25089:2;25103:47;;;25074:18;;25164:131;25074:18;25164:131;;25312:407;25503:2;25517:47;;;25488:18;;25578:131;25488:18;25578:131;;25726:407;25917:2;25931:47;;;25902:18;;25992:131;25902:18;25992:131;;26140:707;26374:3;26359:19;;26389:71;26363:9;26433:6;26389:71;;;26471:72;26539:2;26528:9;26524:18;26515:6;26471:72;;;26591:9;26585:4;26581:20;26576:2;26565:9;26561:18;26554:48;26616:72;26683:4;26674:6;26616:72;;;26608:80;;26736:9;26730:4;26726:20;26721:2;26710:9;26706:18;26699:48;26761:76;26832:4;26823:6;26761:76;;;26753:84;26345:502;-1:-1;;;;;;26345:502;26854:256;26916:2;26910:9;26942:17;;;27017:18;27002:34;;27038:22;;;26999:62;26996:2;;;27074:1;27071;27064:12;26996:2;27090;27083:22;26894:216;;-1:-1;26894:216;27117:263;;27281:18;27273:6;27270:30;27267:2;;;27313:1;27310;27303:12;27267:2;-1:-1;27342:4;27330:17;;;27360:15;;27204:176;28216:254;;28355:18;28347:6;28344:30;28341:2;;;28387:1;28384;28377:12;28341:2;-1:-1;28460:4;28431;28408:17;;;;28427:9;28404:33;28450:15;;28278:192;28742:87;28812:12;;28796:33;28934:105;;29003:31;29028:5;29003:31;;29046:79;29115:5;29098:27;29132:128;29212:42;29201:54;;29184:76;29638:145;29719:6;29714:3;29709;29696:30;-1:-1;29775:1;29757:16;;29750:27;29689:94;29792:268;29857:1;29864:101;29878:6;29875:1;29872:13;29864:101;;;29945:11;;;29939:18;29926:11;;;29919:39;29900:2;29893:10;29864:101;;;29980:6;29977:1;29974:13;29971:2;;;30045:1;30036:6;30031:3;30027:16;30020:27;29971:2;29841:219;;;;;30068:97;30156:2;30136:14;30152:7;30132:28;;30116:49" - } - } - }, - "sources": { - "src/TEC.sol": { - "id": 3 - }, - "src/libs/LibConstants.sol": { - "id": 8 - }, - "src/interfaces/ITransactions.sol": { - "id": 7 - }, - "src/MixinSignatureValidator.sol": { - "id": 0 - }, - "@0x/contracts-utils/contracts/src/LibBytes.sol": { - "id": 19 - }, - "src/mixins/MSignatureValidator.sol": { - "id": 12 - }, - "src/interfaces/ISignatureValidator.sol": { - "id": 4 - }, - "src/MixinTECApprovalVerifier.sol": { - "id": 1 - }, - "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { - "id": 16 - }, - "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { - "id": 17 - }, - "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { - "id": 15 - }, - "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { - "id": 18 - }, - "src/libs/LibTECApproval.sol": { - "id": 10 - }, - "src/libs/LibEIP712Domain.sol": { - "id": 9 - }, - "src/libs/LibZeroExTransaction.sol": { - "id": 11 - }, - "src/mixins/MTECApprovalVerifier.sol": { - "id": 13 - }, - "src/interfaces/ITECApprovalVerifier.sol": { - "id": 5 - }, - "src/MixinTECCore.sol": { - "id": 2 - }, - "src/interfaces/ITECCore.sol": { - "id": 6 - } - }, - "sourceCodes": { - "src/TEC.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibConstants.sol\";\nimport \"./MixinSignatureValidator.sol\";\nimport \"./MixinTECApprovalVerifier.sol\";\nimport \"./MixinTECCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract TEC is\n LibConstants,\n MixinSignatureValidator,\n MixinTECApprovalVerifier,\n MixinTECCore\n{\n constructor (address _exchange)\n public\n LibConstants(_exchange)\n {}\n}\n", - "src/libs/LibConstants.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ITransactions.sol\";\n\n\ncontract LibConstants {\n\n // solhint-disable-next-line var-name-mixedcase\n ITransactions internal EXCHANGE;\n\n constructor (address _exchange)\n public\n {\n EXCHANGE = ITransactions(_exchange);\n }\n}\n", - "src/interfaces/ITransactions.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\npragma solidity ^0.5.3;\n\n\ncontract ITransactions {\n\n /// @dev Executes an exchange method call in the context of signer.\n /// @param salt Arbitrary number to ensure uniqueness of transaction hash.\n /// @param signerAddress Address of transaction signer.\n /// @param data AbiV2 encoded calldata.\n /// @param signature Proof of signer transaction by signer.\n function executeTransaction(\n uint256 salt,\n address signerAddress,\n bytes calldata data,\n bytes calldata signature\n )\n external;\n}\n", - "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", - "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", - "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", - "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", - "src/MixinTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibTECApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinTECApprovalVerifier is\n LibExchangeSelectors,\n LibTECApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MTECApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i < signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n TECApproval memory approval = TECApproval({\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getTECApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i < ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n address approverAddress = orders[i].feeRecipientAddress;\n if (approverAddress == tx.origin) {\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n\n // The Ethereum transaction signer must be the 0x transaction signer or an approver of the 0x transaction\n require(\n transaction.signerAddress == tx.origin || approvalSignerAddresses.contains(tx.origin),\n \"INVALID_SENDER\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", - "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", - "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", - "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return true;\n }\n }\n return false;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool, uint256)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return (true, i);\n }\n }\n return (false, 0);\n }\n}\n", - "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/mixins/MTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ITECApprovalVerifier.sol\";\n\n\ncontract MTECApprovalVerifier is\n ITECApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", - "src/interfaces/ITECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n", - "src/MixinTECCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./libs/LibConstants.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\nimport \"./interfaces/ITECCore.sol\";\n\n\ncontract MixinTECCore is\n LibConstants,\n MTECApprovalVerifier,\n ITECCore\n{\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n {\n // Validate that the 0x transaction has been approves by each feeRecipient\n assertValidTECApprovals(\n transaction,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n\n // Execute the transaction\n EXCHANGE.executeTransaction(\n transaction.salt,\n transaction.signerAddress,\n transaction.data,\n transactionSignature\n );\n }\n}\n", - "src/interfaces/ITECCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECCore {\n\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public;\n}\n" - }, - "sourceTreeHashHex": "0x7a77910e6871475307d987db7acdd08f6297afd28c030b873e402a238a3ecbb8", - "compiler": { - "name": "solc", - "version": "0.5.3+commit.10d17f24.Linux.g++", - "settings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode.object", - "evm.bytecode.sourceMap", - "evm.deployedBytecode.object", - "evm.deployedBytecode.sourceMap" - ] - } - }, - "remappings": [ - "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", - "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" - ] - } - }, - "networks": {} -} \ No newline at end of file + "schemaVersion": "2.0.0", + "contractName": "TEC", + "compilerOutput": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "bytes32" + }, + { + "name": "signature", + "type": "bytes" + } + ], + "name": "getSignerAddress", + "outputs": [ + { + "name": "signerAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "components": [ + { + "name": "makerAddress", + "type": "address" + }, + { + "name": "takerAddress", + "type": "address" + }, + { + "name": "feeRecipientAddress", + "type": "address" + }, + { + "name": "senderAddress", + "type": "address" + }, + { + "name": "makerAssetAmount", + "type": "uint256" + }, + { + "name": "takerAssetAmount", + "type": "uint256" + }, + { + "name": "makerFee", + "type": "uint256" + }, + { + "name": "takerFee", + "type": "uint256" + }, + { + "name": "expirationTimeSeconds", + "type": "uint256" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "makerAssetData", + "type": "bytes" + }, + { + "name": "takerAssetData", + "type": "bytes" + } + ], + "name": "orders", + "type": "tuple[]" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTransactionOrdersApproval", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTECApprovals", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EIP712_DOMAIN_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "executeTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_exchange", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x60806040523480156200001157600080fd5b50604051602080620026558339810180604052620000339190810190620001f8565b604080517f454950373132446f6d61696e28000000000000000000000000000000000000006020808301919091527f737472696e67206e616d652c0000000000000000000000000000000000000000602d8301527f737472696e672076657273696f6e2c000000000000000000000000000000000060398301527f6164647265737320766572696679696e67436f6e74726163740000000000000060488301527f2900000000000000000000000000000000000000000000000000000000000000606183015282516042818403018152606283018085528151919092012060c2830190935260278082528493926200262e90608201398051602091820120604080518082018252600581527f312e302e3000000000000000000000000000000000000000000000000000000090840152805180840194909452838101919091527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060840152306080808501919091528151808503909101815260a09093019052815191012060005560018054600160a060020a031916600160a060020a03929092169190911790555062000240565b6000620001f182516200022d565b9392505050565b6000602082840312156200020b57600080fd5b6000620002198484620001e3565b949350505050565b600160a060020a031690565b60006200023a8262000221565b92915050565b6123de80620002506000396000f3fe608060405234801561001057600080fd5b5060043610610084576000357c0100000000000000000000000000000000000000000000000000000000900480636c42c8281161006d5780636c42c828146100c7578063e306f779146100da578063f50bb641146100ef57610084565b80630f7d8e391461008957806355fc233c146100b2575b600080fd5b61009c610097366004611b6a565b610102565b6040516100a9919061212b565b60405180910390f35b6100c56100c0366004611c50565b6104f7565b005b6100c56100d5366004611d3c565b610761565b6100e2610790565b6040516100a99190612139565b6100c56100fd366004611d3c565b610796565b6000808251111515610149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121e7565b60405180910390fd5b600061015483610840565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121d7565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff61090416565b905060006102c687602163ffffffff61090416565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff61090416565b9050600061041287602163ffffffff61090416565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b92915050565b60006105028661094f565b60408051600080825260208201909252845192935091905b818110156105ee576000868281518110151561053257fe5b9060200190602002015190506105466114fb565b5060408051606081018252868152602081018a905290810182905242821161059a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612197565b60006105a582610962565b905060006105ca828a878151811015156105bb57fe5b90602001906020020151610102565b90506105dc878263ffffffff61097016565b9650506001909301925061051a915050565b50865160005b818110156107555788516000908a908390811061060d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561063c5761074d565b6000898281518110151561064c57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106925761068a853263ffffffff61097016565b94505061074d565b60006106a4868363ffffffff610a3a16565b90508015156106df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612157565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806107125750610712863263ffffffff610a3a16565b151561074a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121f7565b50505b6001016105f4565b50505050505050505050565b60606107708560400151610ab2565b90506000815111156107895761078985828686866104f7565b5050505050565b60005481565b6107a284848484610761565b6001548451602086015160408088015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361080893909290918990600401612217565b600060405180830381600087803b15801561082257600080fd5b505af1158015610836573d6000803e3d6000fd5b5050505050505050565b600080825111151561087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121c7565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108ae57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610946576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121a7565b50016020015190565b60006104f161095d83610f6a565b611126565b60006104f161095d83611166565b8151604051606091849060208082028084018201929101828510156109c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612187565b828511156109db576109d48585836112f8565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610a0857fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b81811015610aa7578373ffffffffffffffffffffffffffffffffffffffff168582815181101515610a6e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415610a9f576001925050506104f1565b600101610a41565b506000949350505050565b60606000610ac6838263ffffffff6113bc16565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610b5957507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610ba557507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610c2f57610bb2611520565b8351610bc890859060049063ffffffff61142916565b806020019051610bdb9190810190611bbc565b604080516001808252818301909252919250816020015b610bfa611520565b815260200190600190039081610bf257905050925080836000815181101515610c1f57fe5b6020908102909101015250610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610cc057507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610d0c57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610d5857507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610da457507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610df057507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610e3c57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610e71578251610e5790849060049063ffffffff61142916565b806020019051610e6a9190810190611b2d565b9150610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610f6457610ec3611520565b610ecb611520565b8451610ee190869060049063ffffffff61142916565b806020019051610ef49190810190611bf1565b60408051600280825260608201909252929450909250816020015b610f17611520565b815260200190600190039081610f0f57905050935081846000815181101515610f3c57fe5b602090810290910101528351819085906001908110610f5757fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b6020831061109e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611061565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256123808239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b6020831061128657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611249565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611322576001816020036101000a0380198351168185511680821786525050506113b7565b8282141561132f576113b7565b828211156113695760208103905080820181840181515b82851015611361578451865260209586019590940193611346565b9052506113b7565b60208103905080820181840183515b818612156113b257825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283019290910190611378565b855250505b505050565b6000816004018351101515156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612207565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612167565b83518211156114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612177565b8282036040519080825280601f01601f1916602001820160405280156114cd576020820181803883390190505b5090506114ee6114dc826114f5565b846114e6876114f5565b0183516112f8565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114ee82356122f4565b60006114ee82516122f4565b6000601f8201831361160357600080fd5b813561161661161182612289565b612262565b81815260209384019390925082018360005b83811015611654578135860161163e8882611794565b8452506020928301929190910190600101611628565b5050505092915050565b6000601f8201831361166f57600080fd5b815161167d61161182612289565b81815260209384019390925082018360005b8381101561165457815186016116a58882611972565b845250602092830192919091019060010161168f565b6000601f820183136116cc57600080fd5b81356116da61161182612289565b81815260209384019390925082018360005b8381101561165457813586016117028882611829565b84525060209283019291909101906001016116ec565b6000601f8201831361172957600080fd5b813561173761161182612289565b9150818183526020840193506020810190508385602084028201111561175c57600080fd5b60005b8381101561165457816117728882611788565b845250602092830192919091019060010161175f565b60006114ee82356122ff565b6000601f820183136117a557600080fd5b81356117b3611611826122aa565b915080825260208301602083018583830111156117cf57600080fd5b6117da83828461231b565b50505092915050565b6000601f820183136117f457600080fd5b8151611802611611826122aa565b9150808252602083016020830185838301111561181e57600080fd5b6117da838284612327565b6000610180828403121561183c57600080fd5b611847610180612262565b9050600061185584846115da565b8252506020611866848483016115da565b602083015250604061187a848285016115da565b604083015250606061188e848285016115da565b60608301525060806118a284828501611788565b60808301525060a06118b684828501611788565b60a08301525060c06118ca84828501611788565b60c08301525060e06118de84828501611788565b60e0830152506101006118f384828501611788565b6101008301525061012061190984828501611788565b6101208301525061014082013567ffffffffffffffff81111561192b57600080fd5b61193784828501611794565b6101408301525061016082013567ffffffffffffffff81111561195957600080fd5b61196584828501611794565b6101608301525092915050565b6000610180828403121561198557600080fd5b611990610180612262565b9050600061199e84846115e6565b82525060206119af848483016115e6565b60208301525060406119c3848285016115e6565b60408301525060606119d7848285016115e6565b60608301525060806119eb84828501611b21565b60808301525060a06119ff84828501611b21565b60a08301525060c0611a1384828501611b21565b60c08301525060e0611a2784828501611b21565b60e083015250610100611a3c84828501611b21565b61010083015250610120611a5284828501611b21565b6101208301525061014082015167ffffffffffffffff811115611a7457600080fd5b611a80848285016117e3565b6101408301525061016082015167ffffffffffffffff811115611aa257600080fd5b611965848285016117e3565b600060608284031215611ac057600080fd5b611aca6060612262565b90506000611ad88484611788565b8252506020611ae9848483016115da565b602083015250604082013567ffffffffffffffff811115611b0957600080fd5b611b1584828501611794565b60408301525092915050565b60006114ee82516122ff565b600060208284031215611b3f57600080fd5b815167ffffffffffffffff811115611b5657600080fd5b611b628482850161165e565b949350505050565b60008060408385031215611b7d57600080fd5b6000611b898585611788565b925050602083013567ffffffffffffffff811115611ba657600080fd5b611bb285828601611794565b9150509250929050565b600060208284031215611bce57600080fd5b815167ffffffffffffffff811115611be557600080fd5b611b6284828501611972565b60008060408385031215611c0457600080fd5b825167ffffffffffffffff811115611c1b57600080fd5b611c2785828601611972565b925050602083015167ffffffffffffffff811115611c4457600080fd5b611bb285828601611972565b600080600080600060a08688031215611c6857600080fd5b853567ffffffffffffffff811115611c7f57600080fd5b611c8b88828901611aae565b955050602086013567ffffffffffffffff811115611ca857600080fd5b611cb4888289016116bb565b945050604086013567ffffffffffffffff811115611cd157600080fd5b611cdd88828901611794565b935050606086013567ffffffffffffffff811115611cfa57600080fd5b611d0688828901611718565b925050608086013567ffffffffffffffff811115611d2357600080fd5b611d2f888289016115f2565b9150509295509295909350565b60008060008060808587031215611d5257600080fd5b843567ffffffffffffffff811115611d6957600080fd5b611d7587828801611aae565b945050602085013567ffffffffffffffff811115611d9257600080fd5b611d9e87828801611794565b935050604085013567ffffffffffffffff811115611dbb57600080fd5b611dc787828801611718565b925050606085013567ffffffffffffffff811115611de457600080fd5b611df0878288016115f2565b91505092959194509250565b611e05816122f4565b82525050565b611e05816122ff565b6000611e1f826122f0565b808452611e33816020860160208601612327565b611e3c81612357565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611dfc565b602081016104f18284611e0b565b602080825281016104f181611e49565b602080825281016104f181611e79565b602080825281016104f181611ea9565b602080825281016104f181611ed9565b602080825281016104f181611f09565b602080825281016104f181611f39565b602080825281016104f181611f69565b602080825281016104f181611fbf565b602080825281016104f181611fef565b602080825281016104f181612045565b602080825281016104f181612075565b602080825281016104f1816120a5565b602080825281016104f1816120d5565b608081016122258287611e0b565b6122326020830186611dfc565b81810360408301526122448185611e14565b905081810360608301526122588184611e14565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561228157600080fd5b604052919050565b600067ffffffffffffffff8211156122a057600080fd5b5060209081020190565b600067ffffffffffffffff8211156122c157600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612302565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561234257818101518382015260200161232a565b83811115612351576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a723058207d14ce46d6a1f41fea9ab5b5291d1e35347eb8bb6b321fac4db6b2187d7a44836c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x2655 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x33 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x1F8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0x2D DUP4 ADD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0x39 DUP4 ADD MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0x48 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x61 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x42 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x62 DUP4 ADD DUP1 DUP6 MSTORE DUP2 MLOAD SWAP2 SWAP1 SWAP3 ADD KECCAK256 PUSH1 0xC2 DUP4 ADD SWAP1 SWAP4 MSTORE PUSH1 0x27 DUP1 DUP3 MSTORE DUP5 SWAP4 SWAP3 PUSH3 0x262E SWAP1 PUSH1 0x82 ADD CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE DUP1 MLOAD DUP1 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP4 ADD SWAP1 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x240 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1F1 DUP3 MLOAD PUSH3 0x22D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x20B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x219 DUP5 DUP5 PUSH3 0x1E3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x23A DUP3 PUSH3 0x221 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x23DE DUP1 PUSH3 0x250 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x6C42C828 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xF50BB641 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6A JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x212B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C50 JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x2139 JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x796 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x840 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x502 DUP7 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x532 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x546 PUSH2 0x14FB JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A5 DUP3 PUSH2 0x962 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5CA DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x5BB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x5DC DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x51A SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x755 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x60D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x63C JUMPI PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x64C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x692 JUMPI PUSH2 0x68A DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A4 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x712 JUMPI POP PUSH2 0x712 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21F7 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5F4 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x770 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x789 JUMPI PUSH2 0x789 DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4F7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x7A2 DUP5 DUP5 DUP5 DUP5 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP5 MLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 DUP1 DUP9 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x808 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2217 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x87E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21C7 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x8AE JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0xF6A JUMP JUMPDEST PUSH2 0x1126 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0x1166 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x9C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2187 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x9DB JUMPI PUSH2 0x9D4 DUP6 DUP6 DUP4 PUSH2 0x12F8 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA08 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAA7 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA6E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA9F JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xA41 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xAC6 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x13BC AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB59 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBA5 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xC2F JUMPI PUSH2 0xBB2 PUSH2 0x1520 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xBC8 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xBDB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xBFA PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBF2 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC1F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xCC0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD0C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD58 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDA4 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDF0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xE3C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xE71 JUMPI DUP3 MLOAD PUSH2 0xE57 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE6A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B2D JUMP JUMPDEST SWAP2 POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xF64 JUMPI PUSH2 0xEC3 PUSH2 0x1520 JUMP JUMPDEST PUSH2 0xECB PUSH2 0x1520 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xEE1 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xEF4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xF17 PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xF0F JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xF57 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x109E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1061 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x2380 DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1286 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1249 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1322 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x132F JUMPI PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1369 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1361 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x1346 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x13B2 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1378 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2207 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x1465 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2167 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2177 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x14EE PUSH2 0x14DC DUP3 PUSH2 0x14F5 JUMP JUMPDEST DUP5 PUSH2 0x14E6 DUP8 PUSH2 0x14F5 JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x12F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1603 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1616 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0x2262 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x163E DUP9 DUP3 PUSH2 0x1794 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1628 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x166F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x167D PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x16A5 DUP9 DUP3 PUSH2 0x1972 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x168F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1702 DUP9 DUP3 PUSH2 0x1829 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x16EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1737 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x175C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 PUSH2 0x1772 DUP9 DUP3 PUSH2 0x1788 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17B3 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x231B JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1802 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x181E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x2327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x183C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1847 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1855 DUP5 DUP5 PUSH2 0x15DA JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1866 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x187A DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x188E DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x18A2 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x18B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x18CA DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x18DE DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x18F3 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1909 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1937 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1985 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1990 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199E DUP5 DUP5 PUSH2 0x15E6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x19AF DUP5 DUP5 DUP4 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x19C3 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x19D7 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x19EB DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x19FF DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1A13 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1A27 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1A52 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A80 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1ACA PUSH1 0x60 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AD8 DUP5 DUP5 PUSH2 0x1788 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1AE9 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B15 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x165E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B89 DUP6 DUP6 PUSH2 0x1788 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C8B DUP9 DUP3 DUP10 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CB4 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CDD DUP9 DUP3 DUP10 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP9 DUP3 DUP10 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D2F DUP9 DUP3 DUP10 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1D52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D75 DUP8 DUP3 DUP9 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D9E DUP8 DUP3 DUP9 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC7 DUP8 DUP3 DUP9 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DF0 DUP8 DUP3 DUP9 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22F4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E1F DUP3 PUSH2 0x22F0 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E33 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2327 JUMP JUMPDEST PUSH2 0x1E3C DUP2 PUSH2 0x2357 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1E0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E79 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1EA9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F39 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F69 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FEF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2045 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2075 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20A5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2225 DUP3 DUP8 PUSH2 0x1E0B JUMP JUMPDEST PUSH2 0x2232 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1DFC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2244 DUP2 DUP6 PUSH2 0x1E14 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2258 DUP2 DUP5 PUSH2 0x1E14 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2302 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2342 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x232A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A723058207D14CE46 0xd6 LOG1 DELEGATECALL 0x1f 0xea SWAP11 0xb5 0xb5 0x29 SAR 0x1e CALLDATALOAD CALLVALUE PUSH31 0xB8BB6B321FAC4DB6B2187D7A44836C6578706572696D656E74616CF5003730 PUSH25 0x2050726F746F636F6C20547261646520457865637574696F6E KECCAK256 NUMBER PUSH16 0x6F7264696E61746F7200000000000000 ", + "sourceMap": "821:203:3:-;;;937:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;937:85:3;;;;;;;;;;;;;;;;;;;;;;1083:148:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;1083:148:9;;;;;;1073:159;;;;;;;1549:18;;;;;;;;;;1005:9:3;;1073:159:9;1549:18;;;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;;;;;;;;;;;;;1583:39;1454:214;;;;1652:4;1454:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1454:214:9;;;;;;1444:225;;;;;-1:-1:-1;1423:246:9;830:8:8;:35;;-1:-1:-1;;;;;;830:35:8;-1:-1:-1;;;;;830:35:8;;;;;;;;;;-1:-1:-1;821:203:3;;5:122:-1;;83:39;114:6;108:13;83:39;;;74:48;68:59;-1:-1;;;68:59;134:263;;249:2;237:9;228:7;224:23;220:32;217:2;;;265:1;262;255:12;217:2;300:1;317:64;373:7;353:9;317:64;;;307:74;211:186;-1:-1;;;;211:186;404:128;-1:-1;;;;;473:54;;456:76;539:105;;608:31;633:5;608:31;;;597:42;591:53;-1:-1;;591:53;;821:203:3;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610084576000357c0100000000000000000000000000000000000000000000000000000000900480636c42c8281161006d5780636c42c828146100c7578063e306f779146100da578063f50bb641146100ef57610084565b80630f7d8e391461008957806355fc233c146100b2575b600080fd5b61009c610097366004611b6a565b610102565b6040516100a9919061212b565b60405180910390f35b6100c56100c0366004611c50565b6104f7565b005b6100c56100d5366004611d3c565b610761565b6100e2610790565b6040516100a99190612139565b6100c56100fd366004611d3c565b610796565b6000808251111515610149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121e7565b60405180910390fd5b600061015483610840565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121d7565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff61090416565b905060006102c687602163ffffffff61090416565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612147565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff61090416565b9050600061041287602163ffffffff61090416565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121b7565b92915050565b60006105028661094f565b60408051600080825260208201909252845192935091905b818110156105ee576000868281518110151561053257fe5b9060200190602002015190506105466114fb565b5060408051606081018252868152602081018a905290810182905242821161059a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612197565b60006105a582610962565b905060006105ca828a878151811015156105bb57fe5b90602001906020020151610102565b90506105dc878263ffffffff61097016565b9650506001909301925061051a915050565b50865160005b818110156107555788516000908a908390811061060d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561063c5761074d565b6000898281518110151561064c57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106925761068a853263ffffffff61097016565b94505061074d565b60006106a4868363ffffffff610a3a16565b90508015156106df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612157565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806107125750610712863263ffffffff610a3a16565b151561074a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121f7565b50505b6001016105f4565b50505050505050505050565b60606107708560400151610ab2565b90506000815111156107895761078985828686866104f7565b5050505050565b60005481565b6107a284848484610761565b6001548451602086015160408088015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361080893909290918990600401612217565b600060405180830381600087803b15801561082257600080fd5b505af1158015610836573d6000803e3d6000fd5b5050505050505050565b600080825111151561087e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121c7565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106108ae57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610946576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610140906121a7565b50016020015190565b60006104f161095d83610f6a565b611126565b60006104f161095d83611166565b8151604051606091849060208082028084018201929101828510156109c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612187565b828511156109db576109d48585836112f8565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610a0857fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b81811015610aa7578373ffffffffffffffffffffffffffffffffffffffff168582815181101515610a6e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415610a9f576001925050506104f1565b600101610a41565b506000949350505050565b60606000610ac6838263ffffffff6113bc16565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610b5957507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610ba557507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610c2f57610bb2611520565b8351610bc890859060049063ffffffff61142916565b806020019051610bdb9190810190611bbc565b604080516001808252818301909252919250816020015b610bfa611520565b815260200190600190039081610bf257905050925080836000815181101515610c1f57fe5b6020908102909101015250610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610cc057507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610d0c57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610d5857507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610da457507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610df057507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610e3c57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610e71578251610e5790849060049063ffffffff61142916565b806020019051610e6a9190810190611b2d565b9150610f64565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610f6457610ec3611520565b610ecb611520565b8451610ee190869060049063ffffffff61142916565b806020019051610ef49190810190611bf1565b60408051600280825260608201909252929450909250816020015b610f17611520565b815260200190600190039081610f0f57905050935081846000815181101515610f3c57fe5b602090810290910101528351819085906001908110610f5757fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b6020831061109e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611061565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256123808239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b6020831061128657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611249565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611322576001816020036101000a0380198351168185511680821786525050506113b7565b8282141561132f576113b7565b828211156113695760208103905080820181840181515b82851015611361578451865260209586019590940193611346565b9052506113b7565b60208103905080820181840183515b818612156113b257825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09283019290910190611378565b855250505b505050565b6000816004018351101515156113fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612207565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612167565b83518211156114a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090612177565b8282036040519080825280601f01601f1916602001820160405280156114cd576020820181803883390190505b5090506114ee6114dc826114f5565b846114e6876114f5565b0183516112f8565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114ee82356122f4565b60006114ee82516122f4565b6000601f8201831361160357600080fd5b813561161661161182612289565b612262565b81815260209384019390925082018360005b83811015611654578135860161163e8882611794565b8452506020928301929190910190600101611628565b5050505092915050565b6000601f8201831361166f57600080fd5b815161167d61161182612289565b81815260209384019390925082018360005b8381101561165457815186016116a58882611972565b845250602092830192919091019060010161168f565b6000601f820183136116cc57600080fd5b81356116da61161182612289565b81815260209384019390925082018360005b8381101561165457813586016117028882611829565b84525060209283019291909101906001016116ec565b6000601f8201831361172957600080fd5b813561173761161182612289565b9150818183526020840193506020810190508385602084028201111561175c57600080fd5b60005b8381101561165457816117728882611788565b845250602092830192919091019060010161175f565b60006114ee82356122ff565b6000601f820183136117a557600080fd5b81356117b3611611826122aa565b915080825260208301602083018583830111156117cf57600080fd5b6117da83828461231b565b50505092915050565b6000601f820183136117f457600080fd5b8151611802611611826122aa565b9150808252602083016020830185838301111561181e57600080fd5b6117da838284612327565b6000610180828403121561183c57600080fd5b611847610180612262565b9050600061185584846115da565b8252506020611866848483016115da565b602083015250604061187a848285016115da565b604083015250606061188e848285016115da565b60608301525060806118a284828501611788565b60808301525060a06118b684828501611788565b60a08301525060c06118ca84828501611788565b60c08301525060e06118de84828501611788565b60e0830152506101006118f384828501611788565b6101008301525061012061190984828501611788565b6101208301525061014082013567ffffffffffffffff81111561192b57600080fd5b61193784828501611794565b6101408301525061016082013567ffffffffffffffff81111561195957600080fd5b61196584828501611794565b6101608301525092915050565b6000610180828403121561198557600080fd5b611990610180612262565b9050600061199e84846115e6565b82525060206119af848483016115e6565b60208301525060406119c3848285016115e6565b60408301525060606119d7848285016115e6565b60608301525060806119eb84828501611b21565b60808301525060a06119ff84828501611b21565b60a08301525060c0611a1384828501611b21565b60c08301525060e0611a2784828501611b21565b60e083015250610100611a3c84828501611b21565b61010083015250610120611a5284828501611b21565b6101208301525061014082015167ffffffffffffffff811115611a7457600080fd5b611a80848285016117e3565b6101408301525061016082015167ffffffffffffffff811115611aa257600080fd5b611965848285016117e3565b600060608284031215611ac057600080fd5b611aca6060612262565b90506000611ad88484611788565b8252506020611ae9848483016115da565b602083015250604082013567ffffffffffffffff811115611b0957600080fd5b611b1584828501611794565b60408301525092915050565b60006114ee82516122ff565b600060208284031215611b3f57600080fd5b815167ffffffffffffffff811115611b5657600080fd5b611b628482850161165e565b949350505050565b60008060408385031215611b7d57600080fd5b6000611b898585611788565b925050602083013567ffffffffffffffff811115611ba657600080fd5b611bb285828601611794565b9150509250929050565b600060208284031215611bce57600080fd5b815167ffffffffffffffff811115611be557600080fd5b611b6284828501611972565b60008060408385031215611c0457600080fd5b825167ffffffffffffffff811115611c1b57600080fd5b611c2785828601611972565b925050602083015167ffffffffffffffff811115611c4457600080fd5b611bb285828601611972565b600080600080600060a08688031215611c6857600080fd5b853567ffffffffffffffff811115611c7f57600080fd5b611c8b88828901611aae565b955050602086013567ffffffffffffffff811115611ca857600080fd5b611cb4888289016116bb565b945050604086013567ffffffffffffffff811115611cd157600080fd5b611cdd88828901611794565b935050606086013567ffffffffffffffff811115611cfa57600080fd5b611d0688828901611718565b925050608086013567ffffffffffffffff811115611d2357600080fd5b611d2f888289016115f2565b9150509295509295909350565b60008060008060808587031215611d5257600080fd5b843567ffffffffffffffff811115611d6957600080fd5b611d7587828801611aae565b945050602085013567ffffffffffffffff811115611d9257600080fd5b611d9e87828801611794565b935050604085013567ffffffffffffffff811115611dbb57600080fd5b611dc787828801611718565b925050606085013567ffffffffffffffff811115611de457600080fd5b611df0878288016115f2565b91505092959194509250565b611e05816122f4565b82525050565b611e05816122ff565b6000611e1f826122f0565b808452611e33816020860160208601612327565b611e3c81612357565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611dfc565b602081016104f18284611e0b565b602080825281016104f181611e49565b602080825281016104f181611e79565b602080825281016104f181611ea9565b602080825281016104f181611ed9565b602080825281016104f181611f09565b602080825281016104f181611f39565b602080825281016104f181611f69565b602080825281016104f181611fbf565b602080825281016104f181611fef565b602080825281016104f181612045565b602080825281016104f181612075565b602080825281016104f1816120a5565b602080825281016104f1816120d5565b608081016122258287611e0b565b6122326020830186611dfc565b81810360408301526122448185611e14565b905081810360608301526122588184611e14565b9695505050505050565b60405181810167ffffffffffffffff8111828210171561228157600080fd5b604052919050565b600067ffffffffffffffff8211156122a057600080fd5b5060209081020190565b600067ffffffffffffffff8211156122c157600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612302565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561234257818101518382015260200161232a565b83811115612351576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a723058207d14ce46d6a1f41fea9ab5b5291d1e35347eb8bb6b321fac4db6b2187d7a44836c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x6C42C828 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xF50BB641 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B6A JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x212B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C50 JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x761 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x790 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x2139 JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x796 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x840 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21D7 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2147 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x904 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x502 DUP7 PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x532 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x546 PUSH2 0x14FB JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5A5 DUP3 PUSH2 0x962 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5CA DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x5BB JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x5DC DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x51A SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x755 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x60D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x63C JUMPI PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x64C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x692 JUMPI PUSH2 0x68A DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x970 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x74D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A4 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x712 JUMPI POP PUSH2 0x712 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xA3A AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21F7 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5F4 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x770 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0xAB2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x789 JUMPI PUSH2 0x789 DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4F7 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x7A2 DUP5 DUP5 DUP5 DUP5 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP5 MLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 DUP1 DUP9 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x808 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2217 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x87E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21C7 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x8AE JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0xF6A JUMP JUMPDEST PUSH2 0x1126 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0x95D DUP4 PUSH2 0x1166 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x9C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2187 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x9DB JUMPI PUSH2 0x9D4 DUP6 DUP6 DUP4 PUSH2 0x12F8 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA08 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xAA7 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA6E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA9F JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0xA41 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xAC6 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x13BC AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB59 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBA5 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xC2F JUMPI PUSH2 0xBB2 PUSH2 0x1520 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xBC8 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xBDB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BBC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xBFA PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xBF2 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xC1F JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xCC0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD0C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD58 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDA4 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xDF0 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xE3C JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xE71 JUMPI DUP3 MLOAD PUSH2 0xE57 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE6A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B2D JUMP JUMPDEST SWAP2 POP PUSH2 0xF64 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xF64 JUMPI PUSH2 0xEC3 PUSH2 0x1520 JUMP JUMPDEST PUSH2 0xECB PUSH2 0x1520 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xEE1 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1429 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xEF4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xF17 PUSH2 0x1520 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xF0F JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xF3C JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xF57 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x109E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1061 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x2380 DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1286 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1249 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1322 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x132F JUMPI PUSH2 0x13B7 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1369 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1361 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x1346 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x13B2 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1378 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2207 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x1465 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2167 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x14A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x2177 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x14EE PUSH2 0x14DC DUP3 PUSH2 0x14F5 JUMP JUMPDEST DUP5 PUSH2 0x14E6 DUP8 PUSH2 0x14F5 JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x12F8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1603 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1616 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST PUSH2 0x2262 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x163E DUP9 DUP3 PUSH2 0x1794 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1628 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x166F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x167D PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x16A5 DUP9 DUP3 PUSH2 0x1972 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x168F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1702 DUP9 DUP3 PUSH2 0x1829 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x16EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1737 PUSH2 0x1611 DUP3 PUSH2 0x2289 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x175C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1654 JUMPI DUP2 PUSH2 0x1772 DUP9 DUP3 PUSH2 0x1788 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x175F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 CALLDATALOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17B3 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x17CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x231B JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x17F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1802 PUSH2 0x1611 DUP3 PUSH2 0x22AA JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x181E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17DA DUP4 DUP3 DUP5 PUSH2 0x2327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x183C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1847 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1855 DUP5 DUP5 PUSH2 0x15DA JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1866 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x187A DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x188E DUP5 DUP3 DUP6 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x18A2 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x18B6 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x18CA DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x18DE DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x18F3 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1909 DUP5 DUP3 DUP6 ADD PUSH2 0x1788 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x192B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1937 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1959 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1985 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1990 PUSH2 0x180 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199E DUP5 DUP5 PUSH2 0x15E6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x19AF DUP5 DUP5 DUP4 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x19C3 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x19D7 DUP5 DUP3 DUP6 ADD PUSH2 0x15E6 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x19EB DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x19FF DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1A13 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1A27 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1A52 DUP5 DUP3 DUP6 ADD PUSH2 0x1B21 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A80 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1965 DUP5 DUP3 DUP6 ADD PUSH2 0x17E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1ACA PUSH1 0x60 PUSH2 0x2262 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AD8 DUP5 DUP5 PUSH2 0x1788 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1AE9 DUP5 DUP5 DUP4 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B15 DUP5 DUP3 DUP6 ADD PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14EE DUP3 MLOAD PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x165E JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B89 DUP6 DUP6 PUSH2 0x1788 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1BCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B62 DUP5 DUP3 DUP6 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP6 DUP3 DUP7 ADD PUSH2 0x1972 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C8B DUP9 DUP3 DUP10 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CB4 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CDD DUP9 DUP3 DUP10 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP9 DUP3 DUP10 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D2F DUP9 DUP3 DUP10 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1D52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D75 DUP8 DUP3 DUP9 ADD PUSH2 0x1AAE JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D9E DUP8 DUP3 DUP9 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC7 DUP8 DUP3 DUP9 ADD PUSH2 0x1718 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1DE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DF0 DUP8 DUP3 DUP9 ADD PUSH2 0x15F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22F4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1E05 DUP2 PUSH2 0x22FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E1F DUP3 PUSH2 0x22F0 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E33 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2327 JUMP JUMPDEST PUSH2 0x1E3C DUP2 PUSH2 0x2357 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1E0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E79 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1EA9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1ED9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F39 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1F69 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FBF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1FEF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2045 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x2075 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20A5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x2225 DUP3 DUP8 PUSH2 0x1E0B JUMP JUMPDEST PUSH2 0x2232 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1DFC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x2244 DUP2 DUP6 PUSH2 0x1E14 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2258 DUP2 DUP5 PUSH2 0x1E14 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2302 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2342 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x232A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A723058207D14CE46 0xd6 LOG1 DELEGATECALL 0x1f 0xea SWAP11 0xb5 0xb5 0x29 SAR 0x1e CALLDATALOAD CALLVALUE PUSH31 0xB8BB6B321FAC4DB6B2187D7A44836C6578706572696D656E74616CF5003700 ", + "sourceMap": "821:203:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;821:203:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3439:2912:1;;;;;;;;;:::i;:::-;;1981:853;;;;;;;;;:::i;1339:33:9:-;;;:::i;:::-;;;;;;;;1500:745:2;;;;;;;;;:::i;988:2549:0:-;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:0;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:0;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:0;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:0;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:0;;;;;;-1:-1:-1;2510:20:0;;-1:-1:-1;;;;;;2510:20:0;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:0;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:0;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:0;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:0;3499:31;;;;;;;;;;;988:2549;;;;;:::o;3439:2912:1:-;3813:23;3839:31;3858:11;3839:18;:31::i;:::-;3973:16;;;3987:1;3973:16;;;;;;;;;4027:25;;3813:57;;-1:-1:-1;3973:16:1;4027:25;4062:1090;4086:16;4082:1;:20;4062:1090;;;4162:44;4209:29;4239:1;4209:32;;;;;;;;;;;;;;;;;;4162:79;;4255:27;;:::i;:::-;-1:-1:-1;4285:222:1;;;;;;;;;;;;;;;;;;;;;;;4695:15;4656:54;;4569:191;;;;;;;;;;;;;;4839:20;4862:28;4881:8;4862:18;:28::i;:::-;4839:51;;4904:29;4936:53;4953:12;4967:18;4986:1;4967:21;;;;;;;;;;;;;;;;;;4936:16;:53::i;:::-;4904:85;-1:-1:-1;5088:53:1;:23;4904:85;5088:53;:30;:53;:::i;:::-;5062:79;-1:-1:-1;;4104:3:1;;;;;-1:-1:-1;4062:1090:1;;-1:-1:-1;;4062:1090:1;;-1:-1:-1;5193:13:1;;5170:20;5216:1129;5240:12;5236:1;:16;5216:1129;;;5351:9;;5386:1;;5351:6;;5358:1;;5351:9;;;;;;;;;;;;;;:23;;;:37;;;5347:84;;;5408:8;;5347:84;5537:23;5563:6;5570:1;5563:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;5610:28:1;;;5629:9;5610:28;5606:160;;;5684:41;:23;5715:9;5684:41;:30;:41;:::i;:::-;5658:67;;5743:8;;;5606:160;5857:20;5880:49;:23;5913:15;5880:49;:32;:49;:::i;:::-;5857:72;;5968:15;5943:100;;;;;;;;;;;;;;;;6201:25;;;;:38;;6230:9;6201:38;;:85;;-1:-1:-1;6243:43:1;:23;6276:9;6243:43;:32;:43;:::i;:::-;6176:158;;;;;;;;;;;;;;;;5216:1129;;;5254:3;;5216:1129;;;;3439:2912;;;;;;;;;:::o;1981:853::-;2350:30;2383:38;2404:11;:16;;;2383:20;:38::i;:::-;2350:71;;2508:1;2492:6;:13;:17;2488:340;;;2593:224;2647:11;2676:6;2700:20;2738:29;2785:18;2593:36;:224::i;:::-;1981:853;;;;;:::o;1339:33:9:-;;;;:::o;1500:745:2:-;1855:167;1892:11;1917:20;1951:29;1994:18;1855:23;:167::i;:::-;2068:8;;2109:16;;2139:25;;;;2178:16;;;;;2068:170;;;;;:8;;;;;:27;;:170;;2109:16;;2139:25;;2208:20;;2068:170;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2068:170:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2068:170:2;;;;1500:745;;;;:::o;8315:448:19:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:19;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:19;13631:2;13729:13;13723:20;;13292:490::o;1514:406:11:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:10:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;1089:2103:18:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:18;;-1:-1:-1;;;;;1089:2103:18;;;;:::o;3431:342::-;3580:19;;3543:4;;;3609:136;3633:6;3629:1;:10;3609:136;;;3683:6;3664:25;;:12;3677:1;3664:15;;;;;;;;;;;;;;;;;;:25;;;3660:75;;;3716:4;3709:11;;;;;;3660:75;3641:3;;3609:136;;;-1:-1:-1;3761:5:18;;3431:342;-1:-1:-1;;;;3431:342:18:o;6563:1760:1:-;6659:30;6705:15;6723:18;:4;6705:15;6723:18;:15;:18;:::i;:::-;6705:36;-1:-1:-1;6768:31:1;;;6780:19;6768:31;;:87;;-1:-1:-1;6815:40:1;;;6827:28;6815:40;6768:87;:142;;;-1:-1:-1;6871:39:1;;;6883:27;6871:39;6768:142;6751:1543;;;6971:27;;:::i;:::-;7044:11;;7030:26;;7044:4;;7041:1;;7030:26;:10;:26;:::i;:::-;7002:102;;;;;;;;;;;;;;7127:23;;;7148:1;7127:23;;;;;;;;;6970:134;;-1:-1:-1;7127:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7118:32;;7176:5;7164:6;7171:1;7164:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6751:1543:1;;;7215:38;;;7227:26;7215:38;;:101;;-1:-1:-1;7269:47:1;;;7281:35;7269:47;7215:101;:163;;;-1:-1:-1;7332:46:1;;;7344:34;7332:46;7215:163;:217;;;-1:-1:-1;7394:38:1;;;7406:26;7394:38;7215:217;:280;;;-1:-1:-1;7448:47:1;;;7460:35;7448:47;7215:280;:335;;;-1:-1:-1;7511:39:1;;;7523:27;7511:39;7215:335;:399;;;-1:-1:-1;7566:48:1;;;7578:36;7566:48;7215:399;7198:1096;;;7763:11;;7749:26;;7763:4;;7760:1;;7749:26;:10;:26;:::i;:::-;7721:104;;;;;;;;;;;;;;7710:115;;7198:1096;;;7846:33;;;7858:21;7846:33;7842:452;;;7940:31;;:::i;:::-;7973:32;;:::i;:::-;8051:11;;8037:26;;8051:4;;8048:1;;8037:26;:10;:26;:::i;:::-;8009:118;;;;;;;;;;;;;;8189:23;;;8210:1;8189:23;;;;;;;;;7939:188;;-1:-1:-1;7939:188:1;;-1:-1:-1;8189:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8180:32;;8238:9;8226:6;8233:1;8226:9;;;;;;;;;;;;;;;;;;:21;8261:9;;8273:10;;8261:6;;8268:1;;8261:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7842:452:1;-1:-1:-1;6563:1760:1;;;:::o;2167:1395:11:-;823:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;823:146:11;;;;;;;813:157;;;;;;;;;2410:16;;;;2400:27;;2283:14;;813:157;2283:14;;823:146;;;;2400:27;;;;823:146;2400:27;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2400:27:11;;;;;;;;;;;;2525:16;;2575:25;;;;2999:26;;;3125:15;;;3118:29;;;;3270:42;3251:62;;;3234:15;;;3227:87;;;;-1:-1:-1;;;;3364:2:11;3352:15;;3345:33;;;;-1:-1:-1;3519:3:11;3501:22;;;2167:1395::o;1872:924:9:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:10:-;810:183;;;;;;;;;;;;;;;;;;;2349:14;;;;810:183;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:10;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2476:40:10;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3229:15;;;3222:40;;;;3316:15;;;3309:49;;;;3424:2;3412:15;;3405:54;;;;-1:-1:-1;;3562:3:10;3544:22;;;;2248:1357;-1:-1:-1;;;2248:1357:10:o;1808:4337:19:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:19;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:19;1808:4337;;;:::o;15595:687::-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:19;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:19;87:34:-1;135:17;;-1:-1;6890:20:19;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;821:203:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;;728:14;357:611;;;;;;;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1457;;;;;;12605:3;12593:9;12584:7;12580:23;12576:33;12573:2;;;12622:1;12619;12612:12;12573:2;12657:31;;12708:18;12697:30;;12694:2;;;12740:1;12737;12730:12;12694:2;12760:87;12839:7;12830:6;12819:9;12815:22;12760:87;;;12750:97;;12636:217;12912:2;12901:9;12897:18;12884:32;12936:18;12928:6;12925:30;12922:2;;;12968:1;12965;12958:12;12922:2;12988:97;13077:7;13068:6;13057:9;13053:22;12988:97;;;12978:107;;12863:228;13150:2;13139:9;13135:18;13122:32;13174:18;13166:6;13163:30;13160:2;;;13206:1;13203;13196:12;13160:2;13226:62;13280:7;13271:6;13260:9;13256:22;13226:62;;;13216:72;;13101:193;13353:2;13342:9;13338:18;13325:32;13377:18;13369:6;13366:30;13363:2;;;13409:1;13406;13399:12;13363:2;13429:78;13499:7;13490:6;13479:9;13475:22;13429:78;;;13419:88;;13304:209;13572:3;13561:9;13557:19;13544:33;13597:18;13589:6;13586:30;13583:2;;;13629:1;13626;13619:12;13583:2;13649:83;13724:7;13715:6;13704:9;13700:22;13649:83;;;13639:93;;13523:215;12567:1181;;;;;;;;;13755:1157;;;;;14008:3;13996:9;13987:7;13983:23;13979:33;13976:2;;;14025:1;14022;14015:12;13976:2;14060:31;;14111:18;14100:30;;14097:2;;;14143:1;14140;14133:12;14097:2;14163:87;14242:7;14233:6;14222:9;14218:22;14163:87;;;14153:97;;14039:217;14315:2;14304:9;14300:18;14287:32;14339:18;14331:6;14328:30;14325:2;;;14371:1;14368;14361:12;14325:2;14391:62;14445:7;14436:6;14425:9;14421:22;14391:62;;;14381:72;;14266:193;14518:2;14507:9;14503:18;14490:32;14542:18;14534:6;14531:30;14528:2;;;14574:1;14571;14564:12;14528:2;14594:78;14664:7;14655:6;14644:9;14640:22;14594:78;;;14584:88;;14469:209;14737:2;14726:9;14722:18;14709:32;14761:18;14753:6;14750:30;14747:2;;;14793:1;14790;14783:12;14747:2;14813:83;14888:7;14879:6;14868:9;14864:22;14813:83;;;14803:93;;14688:214;13970:942;;;;;;;;14919:120;15002:31;15027:5;15002:31;;;14997:3;14990:44;14984:55;;;15046:120;15129:31;15154:5;15129:31;;15173:307;;15283:38;15315:5;15283:38;;;15338:6;15333:3;15326:19;15350:63;15406:6;15399:4;15394:3;15390:14;15383:4;15376:5;15372:16;15350:63;;;15445:29;15467:6;15445:29;;;15425:50;;;15438:4;15425:50;;15263:217;-1:-1;;;15263:217;15794:306;15959:2;15947:15;;15996:66;15991:2;15982:12;;15975:88;16091:2;16082:12;;15940:160;16109:306;16274:2;16262:15;;16311:66;16306:2;16297:12;;16290:88;16406:2;16397:12;;16255:160;16424:306;16589:2;16577:15;;16626:66;16621:2;16612:12;;16605:88;16721:2;16712:12;;16570:160;16739:306;16904:2;16892:15;;16941:66;16936:2;16927:12;;16920:88;17036:2;17027:12;;16885:160;17054:306;17219:2;17207:15;;17256:66;17251:2;17242:12;;17235:88;17351:2;17342:12;;17200:160;17369:306;17534:2;17522:15;;17571:66;17566:2;17557:12;;17550:88;17666:2;17657:12;;17515:160;17684:407;17849:2;17837:15;;17886:66;17881:2;17872:12;;17865:88;17987:66;17982:2;17973:12;;17966:88;18082:2;18073:12;;17830:261;18100:306;18265:2;18253:15;;18302:66;18297:2;18288:12;;18281:88;18397:2;18388:12;;18246:160;18415:407;18580:2;18568:15;;18617:66;18612:2;18603:12;;18596:88;18718:66;18713:2;18704:12;;18697:88;18813:2;18804:12;;18561:261;18831:306;18996:2;18984:15;;19033:66;19028:2;19019:12;;19012:88;19128:2;19119:12;;18977:160;19146:306;19311:2;19299:15;;19348:66;19343:2;19334:12;;19327:88;19443:2;19434:12;;19292:160;19461:306;19626:2;19614:15;;19663:66;19658:2;19649:12;;19642:88;19758:2;19749:12;;19607:160;19776:407;19941:2;19929:15;;19978:66;19973:2;19964:12;;19957:88;20079:66;20074:2;20065:12;;20058:88;20174:2;20165:12;;19922:261;20318:213;20436:2;20421:18;;20450:71;20425:9;20494:6;20450:71;;20538:213;20656:2;20641:18;;20670:71;20645:9;20714:6;20670:71;;20758:407;20949:2;20963:47;;;20934:18;;21024:131;20934:18;21024:131;;21172:407;21363:2;21377:47;;;21348:18;;21438:131;21348:18;21438:131;;21586:407;21777:2;21791:47;;;21762:18;;21852:131;21762:18;21852:131;;22000:407;22191:2;22205:47;;;22176:18;;22266:131;22176:18;22266:131;;22414:407;22605:2;22619:47;;;22590:18;;22680:131;22590:18;22680:131;;22828:407;23019:2;23033:47;;;23004:18;;23094:131;23004:18;23094:131;;23242:407;23433:2;23447:47;;;23418:18;;23508:131;23418:18;23508:131;;23656:407;23847:2;23861:47;;;23832:18;;23922:131;23832:18;23922:131;;24070:407;24261:2;24275:47;;;24246:18;;24336:131;24246:18;24336:131;;24484:407;24675:2;24689:47;;;24660:18;;24750:131;24660:18;24750:131;;24898:407;25089:2;25103:47;;;25074:18;;25164:131;25074:18;25164:131;;25312:407;25503:2;25517:47;;;25488:18;;25578:131;25488:18;25578:131;;25726:407;25917:2;25931:47;;;25902:18;;25992:131;25902:18;25992:131;;26140:707;26374:3;26359:19;;26389:71;26363:9;26433:6;26389:71;;;26471:72;26539:2;26528:9;26524:18;26515:6;26471:72;;;26591:9;26585:4;26581:20;26576:2;26565:9;26561:18;26554:48;26616:72;26683:4;26674:6;26616:72;;;26608:80;;26736:9;26730:4;26726:20;26721:2;26710:9;26706:18;26699:48;26761:76;26832:4;26823:6;26761:76;;;26753:84;26345:502;-1:-1;;;;;;26345:502;26854:256;26916:2;26910:9;26942:17;;;27017:18;27002:34;;27038:22;;;26999:62;26996:2;;;27074:1;27071;27064:12;26996:2;27090;27083:22;26894:216;;-1:-1;26894:216;27117:263;;27281:18;27273:6;27270:30;27267:2;;;27313:1;27310;27303:12;27267:2;-1:-1;27342:4;27330:17;;;27360:15;;27204:176;28216:254;;28355:18;28347:6;28344:30;28341:2;;;28387:1;28384;28377:12;28341:2;-1:-1;28460:4;28431;28408:17;;;;28427:9;28404:33;28450:15;;28278:192;28742:87;28812:12;;28796:33;28934:105;;29003:31;29028:5;29003:31;;29046:79;29115:5;29098:27;29132:128;29212:42;29201:54;;29184:76;29638:145;29719:6;29714:3;29709;29696:30;-1:-1;29775:1;29757:16;;29750:27;29689:94;29792:268;29857:1;29864:101;29878:6;29875:1;29872:13;29864:101;;;29945:11;;;29939:18;29926:11;;;29919:39;29900:2;29893:10;29864:101;;;29980:6;29977:1;29974:13;29971:2;;;30045:1;30036:6;30031:3;30027:16;30020:27;29971:2;29841:219;;;;;30068:97;30156:2;30136:14;30152:7;30132:28;;30116:49" + } + } + }, + "sources": { + "src/TEC.sol": { + "id": 3 + }, + "src/libs/LibConstants.sol": { + "id": 8 + }, + "src/interfaces/ITransactions.sol": { + "id": 7 + }, + "src/MixinSignatureValidator.sol": { + "id": 0 + }, + "@0x/contracts-utils/contracts/src/LibBytes.sol": { + "id": 19 + }, + "src/mixins/MSignatureValidator.sol": { + "id": 12 + }, + "src/interfaces/ISignatureValidator.sol": { + "id": 4 + }, + "src/MixinTECApprovalVerifier.sol": { + "id": 1 + }, + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { + "id": 16 + }, + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { + "id": 17 + }, + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { + "id": 15 + }, + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { + "id": 18 + }, + "src/libs/LibTECApproval.sol": { + "id": 10 + }, + "src/libs/LibEIP712Domain.sol": { + "id": 9 + }, + "src/libs/LibZeroExTransaction.sol": { + "id": 11 + }, + "src/mixins/MTECApprovalVerifier.sol": { + "id": 13 + }, + "src/interfaces/ITECApprovalVerifier.sol": { + "id": 5 + }, + "src/MixinTECCore.sol": { + "id": 2 + }, + "src/interfaces/ITECCore.sol": { + "id": 6 + } + }, + "sourceCodes": { + "src/TEC.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibConstants.sol\";\nimport \"./MixinSignatureValidator.sol\";\nimport \"./MixinTECApprovalVerifier.sol\";\nimport \"./MixinTECCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract TEC is\n LibConstants,\n MixinSignatureValidator,\n MixinTECApprovalVerifier,\n MixinTECCore\n{\n constructor (address _exchange)\n public\n LibConstants(_exchange)\n {}\n}\n", + "src/libs/LibConstants.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ITransactions.sol\";\n\n\ncontract LibConstants {\n\n // solhint-disable-next-line var-name-mixedcase\n ITransactions internal EXCHANGE;\n\n constructor (address _exchange)\n public\n {\n EXCHANGE = ITransactions(_exchange);\n }\n}\n", + "src/interfaces/ITransactions.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\npragma solidity ^0.5.3;\n\n\ncontract ITransactions {\n\n /// @dev Executes an exchange method call in the context of signer.\n /// @param salt Arbitrary number to ensure uniqueness of transaction hash.\n /// @param signerAddress Address of transaction signer.\n /// @param data AbiV2 encoded calldata.\n /// @param signature Proof of signer transaction by signer.\n function executeTransaction(\n uint256 salt,\n address signerAddress,\n bytes calldata data,\n bytes calldata signature\n )\n external;\n}\n", + "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", + "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", + "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", + "src/MixinTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibTECApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinTECApprovalVerifier is\n LibExchangeSelectors,\n LibTECApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MTECApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i < signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n TECApproval memory approval = TECApproval({\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getTECApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i < ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n address approverAddress = orders[i].feeRecipientAddress;\n if (approverAddress == tx.origin) {\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n\n // The Ethereum transaction signer must be the 0x transaction signer or an approver of the 0x transaction\n require(\n transaction.signerAddress == tx.origin || approvalSignerAddresses.contains(tx.origin),\n \"INVALID_SENDER\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return true;\n }\n }\n return false;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool, uint256)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return (true, i);\n }\n }\n return (false, 0);\n }\n}\n", + "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/mixins/MTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ITECApprovalVerifier.sol\";\n\n\ncontract MTECApprovalVerifier is\n ITECApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", + "src/interfaces/ITECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n", + "src/MixinTECCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./libs/LibConstants.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\nimport \"./interfaces/ITECCore.sol\";\n\n\ncontract MixinTECCore is\n LibConstants,\n MTECApprovalVerifier,\n ITECCore\n{\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n {\n // Validate that the 0x transaction has been approves by each feeRecipient\n assertValidTECApprovals(\n transaction,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n\n // Execute the transaction\n EXCHANGE.executeTransaction(\n transaction.salt,\n transaction.signerAddress,\n transaction.data,\n transactionSignature\n );\n }\n}\n", + "src/interfaces/ITECCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECCore {\n\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public;\n}\n" + }, + "sourceTreeHashHex": "0x7a77910e6871475307d987db7acdd08f6297afd28c030b873e402a238a3ecbb8", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "remappings": [ + "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} diff --git a/contracts/tec/generated-artifacts/TestLibs.json b/contracts/tec/generated-artifacts/TestLibs.json index 432f60dd7e..3643507370 100644 --- a/contracts/tec/generated-artifacts/TestLibs.json +++ b/contracts/tec/generated-artifacts/TestLibs.json @@ -1,149 +1,149 @@ { - "schemaVersion": "2.0.0", - "contractName": "TestLibs", - "compilerOutput": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - } - ], - "name": "publicGetTransactionHash", - "outputs": [ - { - "name": "transactionHash", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "transactionHash", - "type": "bytes32" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256" - } - ], - "name": "approval", - "type": "tuple" - } - ], - "name": "publicGetTECApprovalHash", - "outputs": [ - { - "name": "approvalHash", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EIP712_DOMAIN_HASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "0x60806040526200001060a062000260565b604051602081830303815290604052805190602001206060604051908101604052806027815260200162000a89602791398051602091820120604080518082018252600581527f312e302e300000000000000000000000000000000000000000000000000000009084015251620000ad93927f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c9130910162000210565b60408051601f198184030181529190528051602090910120600055620002af565b620000e3620000dd82620002ac565b620002ac565b82525050565b6000620000f8600c83620002a7565b7f737472696e67206e616d652c00000000000000000000000000000000000000008152600c0192915050565b600062000133601983620002a7565b7f6164647265737320766572696679696e67436f6e747261637400000000000000815260190192915050565b60006200016e600183620002a7565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000620001a9600f83620002a7565b7f737472696e672076657273696f6e2c00000000000000000000000000000000008152600f0192915050565b6000620001e4600d83620002a7565b7f454950373132446f6d61696e28000000000000000000000000000000000000008152600d0192915050565b60006200021e8287620000ce565b602082019150620002308286620000ce565b602082019150620002428285620000ce565b602082019150620002548284620000ce565b50602001949350505050565b60006200026d82620001d5565b91506200027a82620000e9565b915062000287826200019a565b9150620002948262000124565b9150620002a1826200015f565b92915050565b919050565b90565b6107ca80620002bf6000396000f3fe608060405234801561001057600080fd5b506004361061005d577c010000000000000000000000000000000000000000000000000000000060003504637b837ad18114610062578063c27af17d1461008b578063e306f7791461009e575b600080fd5b6100756100703660046103a6565b6100a6565b60405161008291906106af565b60405180910390f35b610075610099366004610369565b6100b7565b6100756100c2565b60006100b1826100c8565b92915050565b60006100b1826100db565b60005481565b60006100b16100d6836100e9565b61016f565b60006100b16100d6836101af565b6000806040516020016100fb9061064c565b604051602081830303815290604052805190602001209050600083604001516040516101279190610640565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101c190610683565b604051602081830303815290604052805190602001209050600083602001516040516101ed9190610640565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b60006102288235610736565b9392505050565b60006102288235610733565b6000601f8201831361024c57600080fd5b813561025f61025a826106e4565b6106bd565b9150808252602083016020830185838301111561027b57600080fd5b610286838284610754565b50505092915050565b6000606082840312156102a157600080fd5b6102ab60606106bd565b905060006102b9848461022f565b825250602082013567ffffffffffffffff8111156102d657600080fd5b6102e28482850161023b565b60208301525060406102f68482850161022f565b60408301525092915050565b60006060828403121561031457600080fd5b61031e60606106bd565b9050600061032c848461022f565b825250602061033d8484830161021c565b602083015250604082013567ffffffffffffffff81111561035d57600080fd5b6102f68482850161023b565b60006020828403121561037b57600080fd5b813567ffffffffffffffff81111561039257600080fd5b61039e8482850161028f565b949350505050565b6000602082840312156103b857600080fd5b813567ffffffffffffffff8111156103cf57600080fd5b61039e84828501610302565b6103e481610733565b82525050565b60006103f58261072a565b6103ff818561072e565b935061040f818560208601610760565b9290920192915050565b600061042660128361072e565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b600061045f601b8361072e565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061049860018361072e565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104d1600c8361072e565b7f544543417070726f76616c2800000000000000000000000000000000000000008152600c0192915050565b600061050a600d8361072e565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610543600a8361072e565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b600061057c60258361072e565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105db60168361072e565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b600061061460188361072e565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061022882846103ea565b600061065782610419565b9150610662826104fd565b915061066d826105ce565b915061067882610536565b91506100b18261048b565b600061068e826104c4565b915061069982610607565b91506106a482610452565b91506106788261056f565b602081016100b182846103db565b60405181810167ffffffffffffffff811182821017156106dc57600080fd5b604052919050565b600067ffffffffffffffff8211156106fb57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff82166100b1565b82818337506000910152565b60005b8381101561077b578181015183820152602001610763565b8381111561078a576000848401525b5050505056fea265627a7a72305820e79099828fe54268e059e14b945d673ffe00fbab54c6062a3ae99557212dffc96c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH3 0x10 PUSH1 0xA0 PUSH3 0x260 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA89 PUSH1 0x27 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE MLOAD PUSH3 0xAD SWAP4 SWAP3 PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C SWAP2 ADDRESS SWAP2 ADD PUSH3 0x210 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH3 0x2AF JUMP JUMPDEST PUSH3 0xE3 PUSH3 0xDD DUP3 PUSH3 0x2AC JUMP JUMPDEST PUSH3 0x2AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xF8 PUSH1 0xC DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x133 PUSH1 0x19 DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 DUP2 MSTORE PUSH1 0x19 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x16E PUSH1 0x1 DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1A9 PUSH1 0xF DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xF ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1E4 PUSH1 0xD DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x21E DUP3 DUP8 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x230 DUP3 DUP7 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x242 DUP3 DUP6 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x254 DUP3 DUP5 PUSH3 0xCE JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26D DUP3 PUSH3 0x1D5 JUMP JUMPDEST SWAP2 POP PUSH3 0x27A DUP3 PUSH3 0xE9 JUMP JUMPDEST SWAP2 POP PUSH3 0x287 DUP3 PUSH3 0x19A JUMP JUMPDEST SWAP2 POP PUSH3 0x294 DUP3 PUSH3 0x124 JUMP JUMPDEST SWAP2 POP PUSH3 0x2A1 DUP3 PUSH3 0x15F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7CA DUP1 PUSH3 0x2BF PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5D JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x7B837AD1 DUP2 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC27AF17D EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x9E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75 PUSH2 0x70 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x6AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x75 PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x369 JUMP JUMPDEST PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x75 PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFB SWAP1 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD PUSH1 0x20 DUP1 DUP10 ADD MLOAD SWAP7 DUP6 MSTORE DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C1 SWAP1 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD SWAP7 DUP3 ADD MLOAD SWAP5 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x733 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F PUSH2 0x25A DUP3 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x6BD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP4 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AB PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31E PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x32C DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x33D DUP5 DUP5 DUP4 ADD PUSH2 0x21C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x28F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP3 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3FF DUP2 DUP6 PUSH2 0x72E JUMP JUMPDEST SWAP4 POP PUSH2 0x40F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x760 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426 PUSH1 0x12 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45F PUSH1 0x1B DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498 PUSH1 0x1 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D1 PUSH1 0xC DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A PUSH1 0xD DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x543 PUSH1 0xA DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57C PUSH1 0x25 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E7432353620617070726F76616C45787069726174696F6E54696D655365 DUP2 MSTORE PUSH32 0x636F6E6473000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x25 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DB PUSH1 0x16 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x614 PUSH1 0x18 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x657 DUP3 PUSH2 0x419 JUMP JUMPDEST SWAP2 POP PUSH2 0x662 DUP3 PUSH2 0x4FD JUMP JUMPDEST SWAP2 POP PUSH2 0x66D DUP3 PUSH2 0x5CE JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP2 POP PUSH2 0xB1 DUP3 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68E DUP3 PUSH2 0x4C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x699 DUP3 PUSH2 0x607 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A4 DUP3 PUSH2 0x452 JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB1 DUP3 DUP5 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x77B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x763 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x78A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xe7 SWAP1 SWAP10 DUP3 DUP16 0xe5 TIMESTAMP PUSH9 0xE059E14B945D673FFE STOP 0xfb 0xab SLOAD 0xc6 MOD 0x2a GASPRICE 0xe9 SWAP6 JUMPI 0x21 0x2d SELFDESTRUCT 0xc9 PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ADDRESS PUSH25 0x2050726F746F636F6C20547261646520457865637574696F6E KECCAK256 NUMBER PUSH16 0x6F7264696E61746F7200000000000000 ", - "sourceMap": "731:1174:3:-;;;1083:148:0;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1083:148:0;;;1073:159;;;;;;1549:18;;;;;;;;;;;;;;;;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;1583:39;;1652:4;;1454:214;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1454:214:0;;;1444:225;;49:4:-1;1444:225:0;;;;1423:18;:246;731:1174:3;;5:159:-1;106:52;126:31;151:5;126:31;;;106:52;;;101:3;94:65;88:76;;;172:400;;350:85;432:2;427:3;350:85;;;468:66;448:87;;563:2;554:12;;336:236;-1:-1;;336:236;581:400;;759:85;841:2;836:3;759:85;;;877:66;857:87;;972:2;963:12;;745:236;-1:-1;;745:236;990:398;;1168:84;1250:1;1245:3;1168:84;;;1285:66;1265:87;;1380:1;1371:11;;1154:234;-1:-1;;1154:234;1397:400;;1575:85;1657:2;1652:3;1575:85;;;1693:66;1673:87;;1788:2;1779:12;;1561:236;-1:-1;;1561:236;1806:400;;1984:85;2066:2;2061:3;1984:85;;;2102:66;2082:87;;2197:2;2188:12;;1970:236;-1:-1;;1970:236;2380:661;;2583:75;2654:3;2645:6;2583:75;;;2680:2;2675:3;2671:12;2664:19;;2694:75;2765:3;2756:6;2694:75;;;2791:2;2786:3;2782:12;2775:19;;2805:75;2876:3;2867:6;2805:75;;;2902:2;2897:3;2893:12;2886:19;;2916:75;2987:3;2978:6;2916:75;;;-1:-1;3013:2;3004:12;;2571:470;-1:-1;;;;2571:470;3048:1440;;3651:148;3795:3;3651:148;;;3644:155;;3817:148;3961:3;3817:148;;;3810:155;;3983:148;4127:3;3983:148;;;3976:155;;4149:148;4293:3;4149:148;;;4142:155;;4315:148;4459:3;4315:148;;;4308:155;3632:856;-1:-1;;3632:856;4496:145;4632:3;4610:31;-1:-1;4610:31;4649:79;4718:5;4701:27;;731:1174:3;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b506004361061005d577c010000000000000000000000000000000000000000000000000000000060003504637b837ad18114610062578063c27af17d1461008b578063e306f7791461009e575b600080fd5b6100756100703660046103a6565b6100a6565b60405161008291906106af565b60405180910390f35b610075610099366004610369565b6100b7565b6100756100c2565b60006100b1826100c8565b92915050565b60006100b1826100db565b60005481565b60006100b16100d6836100e9565b61016f565b60006100b16100d6836101af565b6000806040516020016100fb9061064c565b604051602081830303815290604052805190602001209050600083604001516040516101279190610640565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101c190610683565b604051602081830303815290604052805190602001209050600083602001516040516101ed9190610640565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b60006102288235610736565b9392505050565b60006102288235610733565b6000601f8201831361024c57600080fd5b813561025f61025a826106e4565b6106bd565b9150808252602083016020830185838301111561027b57600080fd5b610286838284610754565b50505092915050565b6000606082840312156102a157600080fd5b6102ab60606106bd565b905060006102b9848461022f565b825250602082013567ffffffffffffffff8111156102d657600080fd5b6102e28482850161023b565b60208301525060406102f68482850161022f565b60408301525092915050565b60006060828403121561031457600080fd5b61031e60606106bd565b9050600061032c848461022f565b825250602061033d8484830161021c565b602083015250604082013567ffffffffffffffff81111561035d57600080fd5b6102f68482850161023b565b60006020828403121561037b57600080fd5b813567ffffffffffffffff81111561039257600080fd5b61039e8482850161028f565b949350505050565b6000602082840312156103b857600080fd5b813567ffffffffffffffff8111156103cf57600080fd5b61039e84828501610302565b6103e481610733565b82525050565b60006103f58261072a565b6103ff818561072e565b935061040f818560208601610760565b9290920192915050565b600061042660128361072e565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b600061045f601b8361072e565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061049860018361072e565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104d1600c8361072e565b7f544543417070726f76616c2800000000000000000000000000000000000000008152600c0192915050565b600061050a600d8361072e565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610543600a8361072e565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b600061057c60258361072e565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105db60168361072e565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b600061061460188361072e565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061022882846103ea565b600061065782610419565b9150610662826104fd565b915061066d826105ce565b915061067882610536565b91506100b18261048b565b600061068e826104c4565b915061069982610607565b91506106a482610452565b91506106788261056f565b602081016100b182846103db565b60405181810167ffffffffffffffff811182821017156106dc57600080fd5b604052919050565b600067ffffffffffffffff8211156106fb57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff82166100b1565b82818337506000910152565b60005b8381101561077b578181015183820152602001610763565b8381111561078a576000848401525b5050505056fea265627a7a72305820e79099828fe54268e059e14b945d673ffe00fbab54c6062a3ae99557212dffc96c6578706572696d656e74616cf50037", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5D JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x7B837AD1 DUP2 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC27AF17D EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x9E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75 PUSH2 0x70 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x6AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x75 PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x369 JUMP JUMPDEST PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x75 PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFB SWAP1 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD PUSH1 0x20 DUP1 DUP10 ADD MLOAD SWAP7 DUP6 MSTORE DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C1 SWAP1 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD SWAP7 DUP3 ADD MLOAD SWAP5 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x733 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F PUSH2 0x25A DUP3 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x6BD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP4 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AB PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31E PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x32C DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x33D DUP5 DUP5 DUP4 ADD PUSH2 0x21C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x28F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP3 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3FF DUP2 DUP6 PUSH2 0x72E JUMP JUMPDEST SWAP4 POP PUSH2 0x40F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x760 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426 PUSH1 0x12 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45F PUSH1 0x1B DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498 PUSH1 0x1 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D1 PUSH1 0xC DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A PUSH1 0xD DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x543 PUSH1 0xA DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57C PUSH1 0x25 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E7432353620617070726F76616C45787069726174696F6E54696D655365 DUP2 MSTORE PUSH32 0x636F6E6473000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x25 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DB PUSH1 0x16 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x614 PUSH1 0x18 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x657 DUP3 PUSH2 0x419 JUMP JUMPDEST SWAP2 POP PUSH2 0x662 DUP3 PUSH2 0x4FD JUMP JUMPDEST SWAP2 POP PUSH2 0x66D DUP3 PUSH2 0x5CE JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP2 POP PUSH2 0xB1 DUP3 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68E DUP3 PUSH2 0x4C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x699 DUP3 PUSH2 0x607 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A4 DUP3 PUSH2 0x452 JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB1 DUP3 DUP5 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x77B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x763 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x78A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xe7 SWAP1 SWAP10 DUP3 DUP16 0xe5 TIMESTAMP PUSH9 0xE059E14B945D673FFE STOP 0xfb 0xab SLOAD 0xc6 MOD 0x2a GASPRICE 0xe9 SWAP6 JUMPI 0x21 0x2d SELFDESTRUCT 0xc9 PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ", - "sourceMap": "731:1174:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;731:1174:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:244;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1150:223;;;;;;;;;:::i;1339:33:0:-;;;:::i;1659:244:3:-;1776:23;1833:31;1852:11;1833:18;:31::i;:::-;1815:49;1659:244;-1:-1:-1;;1659:244:3:o;1150:223::-;1258:20;1309:28;1328:8;1309:18;:28::i;1339:33:0:-;;;;:::o;1514:406:2:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:1:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;2167:1395:2:-;2283:14;2313:18;823:146;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;823:146:2;;;813:157;;;;;;2313:58;;2381:16;2410:11;:16;;;2400:27;;;;;;;;;;;;;;;;;2525:16;;2575:25;;;;;2999:26;;;3125:15;;3118:29;3270:42;3251:62;;;3234:15;;;3227:87;3364:2;3352:15;;3345:33;;;;-1:-1:-1;3519:3:2;3501:22;;;-1:-1:-1;2167:1395:2;;;:::o;1872:924:0:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:1:-;2349:14;2379:18;810:183;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:1;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3241:2;3229:15;;3222:40;;;;3316:15;;3309:49;;;;-1:-1:-1;3424:2:1;3412:15;;3405:54;-1:-1:-1;3562:3:1;3544:22;;;2248:1357::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;130:118;;197:46;235:6;222:20;197:46;;256:432;;346:4;334:17;;330:27;-1:-1;320:2;;371:1;368;361:12;320:2;408:6;395:20;430:60;445:44;482:6;445:44;;;430:60;;;421:69;;510:6;503:5;496:21;546:4;538:6;534:17;579:4;572:5;568:16;614:3;605:6;600:3;596:16;593:25;590:2;;;631:1;628;621:12;590:2;641:41;675:6;670:3;665;641:41;;;313:375;;;;;;;;736:755;;852:4;840:9;835:3;831:19;827:30;824:2;;;870:1;867;860:12;824:2;888:20;903:4;888:20;;;879:29;-1:-1;969:1;1000:49;1045:3;1025:9;1000:49;;;976:74;;-1:-1;1155:2;1140:18;;1127:32;1179:18;1168:30;;1165:2;;;1211:1;1208;1201:12;1165:2;1246:54;1296:3;1287:6;1276:9;1272:22;1246:54;;;1239:4;1232:5;1228:16;1221:80;1071:241;1387:2;1420:49;1465:3;1456:6;1445:9;1441:22;1420:49;;;1413:4;1406:5;1402:16;1395:75;1322:159;818:673;;;;;1550:719;;1673:4;1661:9;1656:3;1652:19;1648:30;1645:2;;;1691:1;1688;1681:12;1645:2;1709:20;1724:4;1709:20;;;1700:29;-1:-1;1779:1;1810:49;1855:3;1835:9;1810:49;;;1786:74;;-1:-1;1930:2;1963:49;2008:3;1984:22;;;1963:49;;;1956:4;1949:5;1945:16;1938:75;1881:143;2102:2;2091:9;2087:18;2074:32;2126:18;2118:6;2115:30;2112:2;;;2158:1;2155;2148:12;2112:2;2193:54;2243:3;2234:6;2223:9;2219:22;2193:54;;2401:381;;2532:2;2520:9;2511:7;2507:23;2503:32;2500:2;;;2548:1;2545;2538:12;2500:2;2583:31;;2634:18;2623:30;;2620:2;;;2666:1;2663;2656:12;2620:2;2686:80;2758:7;2749:6;2738:9;2734:22;2686:80;;;2676:90;2494:288;-1:-1;;;;2494:288;2789:395;;2927:2;2915:9;2906:7;2902:23;2898:32;2895:2;;;2943:1;2940;2933:12;2895:2;2978:31;;3029:18;3018:30;;3015:2;;;3061:1;3058;3051:12;3015:2;3081:87;3160:7;3151:6;3140:9;3136:22;3081:87;;3191:120;3274:31;3299:5;3274:31;;;3269:3;3262:44;3256:55;;;3318:348;;3442:34;3470:5;3442:34;;;3488:88;3569:6;3564:3;3488:88;;;3481:95;;3581:52;3626:6;3621:3;3614:4;3607:5;3603:16;3581:52;;;3645:16;;;;;3422:244;-1:-1;;3422:244;3674:400;;3852:85;3934:2;3929:3;3852:85;;;3970:66;3950:87;;4065:2;4056:12;;3838:236;-1:-1;;3838:236;4083:400;;4261:85;4343:2;4338:3;4261:85;;;4379:66;4359:87;;4474:2;4465:12;;4247:236;-1:-1;;4247:236;4492:398;;4670:84;4752:1;4747:3;4670:84;;;4787:66;4767:87;;4882:1;4873:11;;4656:234;-1:-1;;4656:234;4899:400;;5077:85;5159:2;5154:3;5077:85;;;5195:66;5175:87;;5290:2;5281:12;;5063:236;-1:-1;;5063:236;5308:400;;5486:85;5568:2;5563:3;5486:85;;;5604:66;5584:87;;5699:2;5690:12;;5472:236;-1:-1;;5472:236;5717:400;;5895:85;5977:2;5972:3;5895:85;;;6013:66;5993:87;;6108:2;6099:12;;5881:236;-1:-1;;5881:236;6126:501;;6304:85;6386:2;6381:3;6304:85;;;6422:66;6402:87;;6523:66;6518:2;6509:12;;6502:88;6618:2;6609:12;;6290:337;-1:-1;;6290:337;6636:400;;6814:85;6896:2;6891:3;6814:85;;;6932:66;6912:87;;7027:2;7018:12;;6800:236;-1:-1;;6800:236;7045:400;;7223:85;7305:2;7300:3;7223:85;;;7341:66;7321:87;;7436:2;7427:12;;7209:236;-1:-1;;7209:236;7453:254;;7593:89;7678:3;7669:6;7593:89;;7714:1440;;8317:148;8461:3;8317:148;;;8310:155;;8483:148;8627:3;8483:148;;;8476:155;;8649:148;8793:3;8649:148;;;8642:155;;8815:148;8959:3;8815:148;;;8808:155;;8981:148;9125:3;8981:148;;9161:1440;;9764:148;9908:3;9764:148;;;9757:155;;9930:148;10074:3;9930:148;;;9923:155;;10096:148;10240:3;10096:148;;;10089:155;;10262:148;10406:3;10262:148;;10608:213;10726:2;10711:18;;10740:71;10715:9;10784:6;10740:71;;10828:256;10890:2;10884:9;10916:17;;;10991:18;10976:34;;11012:22;;;10973:62;10970:2;;;11048:1;11045;11038:12;10970:2;11064;11057:22;10868:216;;-1:-1;10868:216;11091:254;;11230:18;11222:6;11219:30;11216:2;;;11262:1;11259;11252:12;11216:2;-1:-1;11335:4;11306;11283:17;;;;11302:9;11279:33;11325:15;;11153:192;11352:87;11422:12;;11406:33;11447:144;11582:3;11560:31;-1:-1;11560:31;11753:79;11822:5;11805:27;11839:105;;12117:42;12106:54;;11908:31;12089:76;12259:145;12340:6;12335:3;12330;12317:30;-1:-1;12396:1;12378:16;;12371:27;12310:94;12413:268;12478:1;12485:101;12499:6;12496:1;12493:13;12485:101;;;12566:11;;;12560:18;12547:11;;;12540:39;12521:2;12514:10;12485:101;;;12601:6;12598:1;12595:13;12592:2;;;12666:1;12657:6;12652:3;12648:16;12641:27;12592:2;12462:219;;;;" - } - } - }, - "sources": { - "test/TestLibs.sol": { - "id": 3 - }, - "src/libs/LibTECApproval.sol": { - "id": 1 - }, - "src/libs/LibEIP712Domain.sol": { - "id": 0 - }, - "src/libs/LibZeroExTransaction.sol": { - "id": 2 - } - }, - "sourceCodes": { - "test/TestLibs.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../src/libs/LibTECApproval.sol\";\nimport \"../src/libs/LibZeroExTransaction.sol\";\n\n\ncontract TestLibs is\n LibTECApproval,\n LibZeroExTransaction\n{\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function publicGetTECApprovalHash(TECApproval memory approval)\n public\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = getTECApprovalHash(approval);\n return approvalHash;\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function publicGetTransactionHash(ZeroExTransaction memory transaction)\n public\n view\n returns (bytes32 transactionHash)\n {\n transactionHash = getTransactionHash(transaction);\n return transactionHash;\n }\n}\n", - "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n" - }, - "sourceTreeHashHex": "0x2d256b13f2542ebde5880e37c88e2fee3a815d26882e4fdaefd5df58adfa3005", - "compiler": { - "name": "solc", - "version": "0.5.4+commit.9549d8ff.Linux.g++", - "settings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode.object", - "evm.bytecode.sourceMap", - "evm.deployedBytecode.object", - "evm.deployedBytecode.sourceMap" - ] - } - }, - "remappings": [ - "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", - "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" - ] - } - }, - "networks": {} -} \ No newline at end of file + "schemaVersion": "2.0.0", + "contractName": "TestLibs", + "compilerOutput": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + } + ], + "name": "publicGetTransactionHash", + "outputs": [ + { + "name": "transactionHash", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "transactionHash", + "type": "bytes32" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256" + } + ], + "name": "approval", + "type": "tuple" + } + ], + "name": "publicGetTECApprovalHash", + "outputs": [ + { + "name": "approvalHash", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EIP712_DOMAIN_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x60806040526200001060a062000260565b604051602081830303815290604052805190602001206060604051908101604052806027815260200162000a89602791398051602091820120604080518082018252600581527f312e302e300000000000000000000000000000000000000000000000000000009084015251620000ad93927f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c9130910162000210565b60408051601f198184030181529190528051602090910120600055620002af565b620000e3620000dd82620002ac565b620002ac565b82525050565b6000620000f8600c83620002a7565b7f737472696e67206e616d652c00000000000000000000000000000000000000008152600c0192915050565b600062000133601983620002a7565b7f6164647265737320766572696679696e67436f6e747261637400000000000000815260190192915050565b60006200016e600183620002a7565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b6000620001a9600f83620002a7565b7f737472696e672076657273696f6e2c00000000000000000000000000000000008152600f0192915050565b6000620001e4600d83620002a7565b7f454950373132446f6d61696e28000000000000000000000000000000000000008152600d0192915050565b60006200021e8287620000ce565b602082019150620002308286620000ce565b602082019150620002428285620000ce565b602082019150620002548284620000ce565b50602001949350505050565b60006200026d82620001d5565b91506200027a82620000e9565b915062000287826200019a565b9150620002948262000124565b9150620002a1826200015f565b92915050565b919050565b90565b6107ca80620002bf6000396000f3fe608060405234801561001057600080fd5b506004361061005d577c010000000000000000000000000000000000000000000000000000000060003504637b837ad18114610062578063c27af17d1461008b578063e306f7791461009e575b600080fd5b6100756100703660046103a6565b6100a6565b60405161008291906106af565b60405180910390f35b610075610099366004610369565b6100b7565b6100756100c2565b60006100b1826100c8565b92915050565b60006100b1826100db565b60005481565b60006100b16100d6836100e9565b61016f565b60006100b16100d6836101af565b6000806040516020016100fb9061064c565b604051602081830303815290604052805190602001209050600083604001516040516101279190610640565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101c190610683565b604051602081830303815290604052805190602001209050600083602001516040516101ed9190610640565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b60006102288235610736565b9392505050565b60006102288235610733565b6000601f8201831361024c57600080fd5b813561025f61025a826106e4565b6106bd565b9150808252602083016020830185838301111561027b57600080fd5b610286838284610754565b50505092915050565b6000606082840312156102a157600080fd5b6102ab60606106bd565b905060006102b9848461022f565b825250602082013567ffffffffffffffff8111156102d657600080fd5b6102e28482850161023b565b60208301525060406102f68482850161022f565b60408301525092915050565b60006060828403121561031457600080fd5b61031e60606106bd565b9050600061032c848461022f565b825250602061033d8484830161021c565b602083015250604082013567ffffffffffffffff81111561035d57600080fd5b6102f68482850161023b565b60006020828403121561037b57600080fd5b813567ffffffffffffffff81111561039257600080fd5b61039e8482850161028f565b949350505050565b6000602082840312156103b857600080fd5b813567ffffffffffffffff8111156103cf57600080fd5b61039e84828501610302565b6103e481610733565b82525050565b60006103f58261072a565b6103ff818561072e565b935061040f818560208601610760565b9290920192915050565b600061042660128361072e565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b600061045f601b8361072e565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061049860018361072e565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104d1600c8361072e565b7f544543417070726f76616c2800000000000000000000000000000000000000008152600c0192915050565b600061050a600d8361072e565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610543600a8361072e565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b600061057c60258361072e565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105db60168361072e565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b600061061460188361072e565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061022882846103ea565b600061065782610419565b9150610662826104fd565b915061066d826105ce565b915061067882610536565b91506100b18261048b565b600061068e826104c4565b915061069982610607565b91506106a482610452565b91506106788261056f565b602081016100b182846103db565b60405181810167ffffffffffffffff811182821017156106dc57600080fd5b604052919050565b600067ffffffffffffffff8211156106fb57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff82166100b1565b82818337506000910152565b60005b8381101561077b578181015183820152602001610763565b8381111561078a576000848401525b5050505056fea265627a7a72305820e79099828fe54268e059e14b945d673ffe00fbab54c6062a3ae99557212dffc96c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH3 0x10 PUSH1 0xA0 PUSH3 0x260 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA89 PUSH1 0x27 SWAP2 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE MLOAD PUSH3 0xAD SWAP4 SWAP3 PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C SWAP2 ADDRESS SWAP2 ADD PUSH3 0x210 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH3 0x2AF JUMP JUMPDEST PUSH3 0xE3 PUSH3 0xDD DUP3 PUSH3 0x2AC JUMP JUMPDEST PUSH3 0x2AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xF8 PUSH1 0xC DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x133 PUSH1 0x19 DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 DUP2 MSTORE PUSH1 0x19 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x16E PUSH1 0x1 DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1A9 PUSH1 0xF DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xF ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1E4 PUSH1 0xD DUP4 PUSH3 0x2A7 JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x21E DUP3 DUP8 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x230 DUP3 DUP7 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x242 DUP3 DUP6 PUSH3 0xCE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0x254 DUP3 DUP5 PUSH3 0xCE JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26D DUP3 PUSH3 0x1D5 JUMP JUMPDEST SWAP2 POP PUSH3 0x27A DUP3 PUSH3 0xE9 JUMP JUMPDEST SWAP2 POP PUSH3 0x287 DUP3 PUSH3 0x19A JUMP JUMPDEST SWAP2 POP PUSH3 0x294 DUP3 PUSH3 0x124 JUMP JUMPDEST SWAP2 POP PUSH3 0x2A1 DUP3 PUSH3 0x15F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x7CA DUP1 PUSH3 0x2BF PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5D JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x7B837AD1 DUP2 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC27AF17D EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x9E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75 PUSH2 0x70 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x6AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x75 PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x369 JUMP JUMPDEST PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x75 PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFB SWAP1 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD PUSH1 0x20 DUP1 DUP10 ADD MLOAD SWAP7 DUP6 MSTORE DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C1 SWAP1 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD SWAP7 DUP3 ADD MLOAD SWAP5 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x733 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F PUSH2 0x25A DUP3 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x6BD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP4 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AB PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31E PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x32C DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x33D DUP5 DUP5 DUP4 ADD PUSH2 0x21C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x28F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP3 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3FF DUP2 DUP6 PUSH2 0x72E JUMP JUMPDEST SWAP4 POP PUSH2 0x40F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x760 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426 PUSH1 0x12 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45F PUSH1 0x1B DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498 PUSH1 0x1 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D1 PUSH1 0xC DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A PUSH1 0xD DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x543 PUSH1 0xA DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57C PUSH1 0x25 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E7432353620617070726F76616C45787069726174696F6E54696D655365 DUP2 MSTORE PUSH32 0x636F6E6473000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x25 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DB PUSH1 0x16 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x614 PUSH1 0x18 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x657 DUP3 PUSH2 0x419 JUMP JUMPDEST SWAP2 POP PUSH2 0x662 DUP3 PUSH2 0x4FD JUMP JUMPDEST SWAP2 POP PUSH2 0x66D DUP3 PUSH2 0x5CE JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP2 POP PUSH2 0xB1 DUP3 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68E DUP3 PUSH2 0x4C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x699 DUP3 PUSH2 0x607 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A4 DUP3 PUSH2 0x452 JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB1 DUP3 DUP5 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x77B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x763 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x78A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xe7 SWAP1 SWAP10 DUP3 DUP16 0xe5 TIMESTAMP PUSH9 0xE059E14B945D673FFE STOP 0xfb 0xab SLOAD 0xc6 MOD 0x2a GASPRICE 0xe9 SWAP6 JUMPI 0x21 0x2d SELFDESTRUCT 0xc9 PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ADDRESS PUSH25 0x2050726F746F636F6C20547261646520457865637574696F6E KECCAK256 NUMBER PUSH16 0x6F7264696E61746F7200000000000000 ", + "sourceMap": "731:1174:3:-;;;1083:148:0;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1083:148:0;;;1073:159;;;;;;1549:18;;;;;;;;;;;;;;;;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;1583:39;;1652:4;;1454:214;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;1454:214:0;;;1444:225;;49:4:-1;1444:225:0;;;;1423:18;:246;731:1174:3;;5:159:-1;106:52;126:31;151:5;126:31;;;106:52;;;101:3;94:65;88:76;;;172:400;;350:85;432:2;427:3;350:85;;;468:66;448:87;;563:2;554:12;;336:236;-1:-1;;336:236;581:400;;759:85;841:2;836:3;759:85;;;877:66;857:87;;972:2;963:12;;745:236;-1:-1;;745:236;990:398;;1168:84;1250:1;1245:3;1168:84;;;1285:66;1265:87;;1380:1;1371:11;;1154:234;-1:-1;;1154:234;1397:400;;1575:85;1657:2;1652:3;1575:85;;;1693:66;1673:87;;1788:2;1779:12;;1561:236;-1:-1;;1561:236;1806:400;;1984:85;2066:2;2061:3;1984:85;;;2102:66;2082:87;;2197:2;2188:12;;1970:236;-1:-1;;1970:236;2380:661;;2583:75;2654:3;2645:6;2583:75;;;2680:2;2675:3;2671:12;2664:19;;2694:75;2765:3;2756:6;2694:75;;;2791:2;2786:3;2782:12;2775:19;;2805:75;2876:3;2867:6;2805:75;;;2902:2;2897:3;2893:12;2886:19;;2916:75;2987:3;2978:6;2916:75;;;-1:-1;3013:2;3004:12;;2571:470;-1:-1;;;;2571:470;3048:1440;;3651:148;3795:3;3651:148;;;3644:155;;3817:148;3961:3;3817:148;;;3810:155;;3983:148;4127:3;3983:148;;;3976:155;;4149:148;4293:3;4149:148;;;4142:155;;4315:148;4459:3;4315:148;;;4308:155;3632:856;-1:-1;;3632:856;4496:145;4632:3;4610:31;-1:-1;4610:31;4649:79;4718:5;4701:27;;731:1174:3;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b506004361061005d577c010000000000000000000000000000000000000000000000000000000060003504637b837ad18114610062578063c27af17d1461008b578063e306f7791461009e575b600080fd5b6100756100703660046103a6565b6100a6565b60405161008291906106af565b60405180910390f35b610075610099366004610369565b6100b7565b6100756100c2565b60006100b1826100c8565b92915050565b60006100b1826100db565b60005481565b60006100b16100d6836100e9565b61016f565b60006100b16100d6836101af565b6000806040516020016100fb9061064c565b604051602081830303815290604052805190602001209050600083604001516040516101279190610640565b60408051918290038220865160208089015196855284015273ffffffffffffffffffffffffffffffffffffffff90941690820152606081019290925250608090209050919050565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6000806040516020016101c190610683565b604051602081830303815290604052805190602001209050600083602001516040516101ed9190610640565b604080519182900382208651968201519483526020830196909652810194909452506060830152506080902090565b60006102288235610736565b9392505050565b60006102288235610733565b6000601f8201831361024c57600080fd5b813561025f61025a826106e4565b6106bd565b9150808252602083016020830185838301111561027b57600080fd5b610286838284610754565b50505092915050565b6000606082840312156102a157600080fd5b6102ab60606106bd565b905060006102b9848461022f565b825250602082013567ffffffffffffffff8111156102d657600080fd5b6102e28482850161023b565b60208301525060406102f68482850161022f565b60408301525092915050565b60006060828403121561031457600080fd5b61031e60606106bd565b9050600061032c848461022f565b825250602061033d8484830161021c565b602083015250604082013567ffffffffffffffff81111561035d57600080fd5b6102f68482850161023b565b60006020828403121561037b57600080fd5b813567ffffffffffffffff81111561039257600080fd5b61039e8482850161028f565b949350505050565b6000602082840312156103b857600080fd5b813567ffffffffffffffff8111156103cf57600080fd5b61039e84828501610302565b6103e481610733565b82525050565b60006103f58261072a565b6103ff818561072e565b935061040f818560208601610760565b9290920192915050565b600061042660128361072e565b7f5a65726f45785472616e73616374696f6e280000000000000000000000000000815260120192915050565b600061045f601b8361072e565b7f6279746573207472616e73616374696f6e5369676e61747572652c00000000008152601b0192915050565b600061049860018361072e565b7f2900000000000000000000000000000000000000000000000000000000000000815260010192915050565b60006104d1600c8361072e565b7f544543417070726f76616c2800000000000000000000000000000000000000008152600c0192915050565b600061050a600d8361072e565b7f75696e743235362073616c742c000000000000000000000000000000000000008152600d0192915050565b6000610543600a8361072e565b7f62797465732064617461000000000000000000000000000000000000000000008152600a0192915050565b600061057c60258361072e565b7f75696e7432353620617070726f76616c45787069726174696f6e54696d65536581527f636f6e6473000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006105db60168361072e565b7f61646472657373207369676e6572416464726573732c00000000000000000000815260160192915050565b600061061460188361072e565b7f62797465733332207472616e73616374696f6e486173682c0000000000000000815260180192915050565b600061022882846103ea565b600061065782610419565b9150610662826104fd565b915061066d826105ce565b915061067882610536565b91506100b18261048b565b600061068e826104c4565b915061069982610607565b91506106a482610452565b91506106788261056f565b602081016100b182846103db565b60405181810167ffffffffffffffff811182821017156106dc57600080fd5b604052919050565b600067ffffffffffffffff8211156106fb57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b919050565b90565b600073ffffffffffffffffffffffffffffffffffffffff82166100b1565b82818337506000910152565b60005b8381101561077b578181015183820152602001610763565b8381111561078a576000848401525b5050505056fea265627a7a72305820e79099828fe54268e059e14b945d673ffe00fbab54c6062a3ae99557212dffc96c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x5D JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x7B837AD1 DUP2 EQ PUSH2 0x62 JUMPI DUP1 PUSH4 0xC27AF17D EQ PUSH2 0x8B JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0x9E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x75 PUSH2 0x70 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6 JUMP JUMPDEST PUSH2 0xA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x6AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x75 PUSH2 0x99 CALLDATASIZE PUSH1 0x4 PUSH2 0x369 JUMP JUMPDEST PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x75 PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xC8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 DUP3 PUSH2 0xDB JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x16F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1 PUSH2 0xD6 DUP4 PUSH2 0x1AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xFB SWAP1 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD PUSH1 0x20 DUP1 DUP10 ADD MLOAD SWAP7 DUP6 MSTORE DUP5 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1C1 SWAP1 PUSH2 0x683 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x640 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP7 MLOAD SWAP7 DUP3 ADD MLOAD SWAP5 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x736 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 CALLDATALOAD PUSH2 0x733 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25F PUSH2 0x25A DUP3 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x6BD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP4 DUP3 DUP5 PUSH2 0x754 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AB PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E2 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x22F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x31E PUSH1 0x60 PUSH2 0x6BD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x32C DUP5 DUP5 PUSH2 0x22F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x33D DUP5 DUP5 DUP4 ADD PUSH2 0x21C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x23B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x28F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39E DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST PUSH2 0x3E4 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F5 DUP3 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x3FF DUP2 DUP6 PUSH2 0x72E JUMP JUMPDEST SWAP4 POP PUSH2 0x40F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x760 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x426 PUSH1 0x12 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 DUP2 MSTORE PUSH1 0x12 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45F PUSH1 0x1B DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 DUP2 MSTORE PUSH1 0x1B ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x498 PUSH1 0x1 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D1 PUSH1 0xC DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xC ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A PUSH1 0xD DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xD ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x543 PUSH1 0xA DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x57C PUSH1 0x25 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x75696E7432353620617070726F76616C45787069726174696F6E54696D655365 DUP2 MSTORE PUSH32 0x636F6E6473000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x25 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DB PUSH1 0x16 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 DUP2 MSTORE PUSH1 0x16 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x614 PUSH1 0x18 DUP4 PUSH2 0x72E JUMP JUMPDEST PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 DUP2 MSTORE PUSH1 0x18 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP3 DUP5 PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x657 DUP3 PUSH2 0x419 JUMP JUMPDEST SWAP2 POP PUSH2 0x662 DUP3 PUSH2 0x4FD JUMP JUMPDEST SWAP2 POP PUSH2 0x66D DUP3 PUSH2 0x5CE JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP2 POP PUSH2 0xB1 DUP3 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68E DUP3 PUSH2 0x4C4 JUMP JUMPDEST SWAP2 POP PUSH2 0x699 DUP3 PUSH2 0x607 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A4 DUP3 PUSH2 0x452 JUMP JUMPDEST SWAP2 POP PUSH2 0x678 DUP3 PUSH2 0x56F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xB1 DUP3 DUP5 PUSH2 0x3DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xB1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x77B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x763 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x78A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xe7 SWAP1 SWAP10 DUP3 DUP16 0xe5 TIMESTAMP PUSH9 0xE059E14B945D673FFE STOP 0xfb 0xab SLOAD 0xc6 MOD 0x2a GASPRICE 0xe9 SWAP6 JUMPI 0x21 0x2d SELFDESTRUCT 0xc9 PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ", + "sourceMap": "731:1174:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;731:1174:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:244;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1150:223;;;;;;;;;:::i;1339:33:0:-;;;:::i;1659:244:3:-;1776:23;1833:31;1852:11;1833:18;:31::i;:::-;1815:49;1659:244;-1:-1:-1;;1659:244:3:o;1150:223::-;1258:20;1309:28;1328:8;1309:18;:28::i;1339:33:0:-;;;;:::o;1514:406:2:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:1:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;2167:1395:2:-;2283:14;2313:18;823:146;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;823:146:2;;;813:157;;;;;;2313:58;;2381:16;2410:11;:16;;;2400:27;;;;;;;;;;;;;;;;;2525:16;;2575:25;;;;;2999:26;;;3125:15;;3118:29;3270:42;3251:62;;;3234:15;;;3227:87;3364:2;3352:15;;3345:33;;;;-1:-1:-1;3519:3:2;3501:22;;;-1:-1:-1;2167:1395:2;;;:::o;1872:924:0:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:1:-;2349:14;2379:18;810:183;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:1;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3241:2;3229:15;;3222:40;;;;3316:15;;3309:49;;;;-1:-1:-1;3424:2:1;3412:15;;3405:54;-1:-1:-1;3562:3:1;3544:22;;;2248:1357::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;130:118;;197:46;235:6;222:20;197:46;;256:432;;346:4;334:17;;330:27;-1:-1;320:2;;371:1;368;361:12;320:2;408:6;395:20;430:60;445:44;482:6;445:44;;;430:60;;;421:69;;510:6;503:5;496:21;546:4;538:6;534:17;579:4;572:5;568:16;614:3;605:6;600:3;596:16;593:25;590:2;;;631:1;628;621:12;590:2;641:41;675:6;670:3;665;641:41;;;313:375;;;;;;;;736:755;;852:4;840:9;835:3;831:19;827:30;824:2;;;870:1;867;860:12;824:2;888:20;903:4;888:20;;;879:29;-1:-1;969:1;1000:49;1045:3;1025:9;1000:49;;;976:74;;-1:-1;1155:2;1140:18;;1127:32;1179:18;1168:30;;1165:2;;;1211:1;1208;1201:12;1165:2;1246:54;1296:3;1287:6;1276:9;1272:22;1246:54;;;1239:4;1232:5;1228:16;1221:80;1071:241;1387:2;1420:49;1465:3;1456:6;1445:9;1441:22;1420:49;;;1413:4;1406:5;1402:16;1395:75;1322:159;818:673;;;;;1550:719;;1673:4;1661:9;1656:3;1652:19;1648:30;1645:2;;;1691:1;1688;1681:12;1645:2;1709:20;1724:4;1709:20;;;1700:29;-1:-1;1779:1;1810:49;1855:3;1835:9;1810:49;;;1786:74;;-1:-1;1930:2;1963:49;2008:3;1984:22;;;1963:49;;;1956:4;1949:5;1945:16;1938:75;1881:143;2102:2;2091:9;2087:18;2074:32;2126:18;2118:6;2115:30;2112:2;;;2158:1;2155;2148:12;2112:2;2193:54;2243:3;2234:6;2223:9;2219:22;2193:54;;2401:381;;2532:2;2520:9;2511:7;2507:23;2503:32;2500:2;;;2548:1;2545;2538:12;2500:2;2583:31;;2634:18;2623:30;;2620:2;;;2666:1;2663;2656:12;2620:2;2686:80;2758:7;2749:6;2738:9;2734:22;2686:80;;;2676:90;2494:288;-1:-1;;;;2494:288;2789:395;;2927:2;2915:9;2906:7;2902:23;2898:32;2895:2;;;2943:1;2940;2933:12;2895:2;2978:31;;3029:18;3018:30;;3015:2;;;3061:1;3058;3051:12;3015:2;3081:87;3160:7;3151:6;3140:9;3136:22;3081:87;;3191:120;3274:31;3299:5;3274:31;;;3269:3;3262:44;3256:55;;;3318:348;;3442:34;3470:5;3442:34;;;3488:88;3569:6;3564:3;3488:88;;;3481:95;;3581:52;3626:6;3621:3;3614:4;3607:5;3603:16;3581:52;;;3645:16;;;;;3422:244;-1:-1;;3422:244;3674:400;;3852:85;3934:2;3929:3;3852:85;;;3970:66;3950:87;;4065:2;4056:12;;3838:236;-1:-1;;3838:236;4083:400;;4261:85;4343:2;4338:3;4261:85;;;4379:66;4359:87;;4474:2;4465:12;;4247:236;-1:-1;;4247:236;4492:398;;4670:84;4752:1;4747:3;4670:84;;;4787:66;4767:87;;4882:1;4873:11;;4656:234;-1:-1;;4656:234;4899:400;;5077:85;5159:2;5154:3;5077:85;;;5195:66;5175:87;;5290:2;5281:12;;5063:236;-1:-1;;5063:236;5308:400;;5486:85;5568:2;5563:3;5486:85;;;5604:66;5584:87;;5699:2;5690:12;;5472:236;-1:-1;;5472:236;5717:400;;5895:85;5977:2;5972:3;5895:85;;;6013:66;5993:87;;6108:2;6099:12;;5881:236;-1:-1;;5881:236;6126:501;;6304:85;6386:2;6381:3;6304:85;;;6422:66;6402:87;;6523:66;6518:2;6509:12;;6502:88;6618:2;6609:12;;6290:337;-1:-1;;6290:337;6636:400;;6814:85;6896:2;6891:3;6814:85;;;6932:66;6912:87;;7027:2;7018:12;;6800:236;-1:-1;;6800:236;7045:400;;7223:85;7305:2;7300:3;7223:85;;;7341:66;7321:87;;7436:2;7427:12;;7209:236;-1:-1;;7209:236;7453:254;;7593:89;7678:3;7669:6;7593:89;;7714:1440;;8317:148;8461:3;8317:148;;;8310:155;;8483:148;8627:3;8483:148;;;8476:155;;8649:148;8793:3;8649:148;;;8642:155;;8815:148;8959:3;8815:148;;;8808:155;;8981:148;9125:3;8981:148;;9161:1440;;9764:148;9908:3;9764:148;;;9757:155;;9930:148;10074:3;9930:148;;;9923:155;;10096:148;10240:3;10096:148;;;10089:155;;10262:148;10406:3;10262:148;;10608:213;10726:2;10711:18;;10740:71;10715:9;10784:6;10740:71;;10828:256;10890:2;10884:9;10916:17;;;10991:18;10976:34;;11012:22;;;10973:62;10970:2;;;11048:1;11045;11038:12;10970:2;11064;11057:22;10868:216;;-1:-1;10868:216;11091:254;;11230:18;11222:6;11219:30;11216:2;;;11262:1;11259;11252:12;11216:2;-1:-1;11335:4;11306;11283:17;;;;11302:9;11279:33;11325:15;;11153:192;11352:87;11422:12;;11406:33;11447:144;11582:3;11560:31;-1:-1;11560:31;11753:79;11822:5;11805:27;11839:105;;12117:42;12106:54;;11908:31;12089:76;12259:145;12340:6;12335:3;12330;12317:30;-1:-1;12396:1;12378:16;;12371:27;12310:94;12413:268;12478:1;12485:101;12499:6;12496:1;12493:13;12485:101;;;12566:11;;;12560:18;12547:11;;;12540:39;12521:2;12514:10;12485:101;;;12601:6;12598:1;12595:13;12592:2;;;12666:1;12657:6;12652:3;12648:16;12641:27;12592:2;12462:219;;;;" + } + } + }, + "sources": { + "test/TestLibs.sol": { + "id": 3 + }, + "src/libs/LibTECApproval.sol": { + "id": 1 + }, + "src/libs/LibEIP712Domain.sol": { + "id": 0 + }, + "src/libs/LibZeroExTransaction.sol": { + "id": 2 + } + }, + "sourceCodes": { + "test/TestLibs.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../src/libs/LibTECApproval.sol\";\nimport \"../src/libs/LibZeroExTransaction.sol\";\n\n\ncontract TestLibs is\n LibTECApproval,\n LibZeroExTransaction\n{\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function publicGetTECApprovalHash(TECApproval memory approval)\n public\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = getTECApprovalHash(approval);\n return approvalHash;\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function publicGetTransactionHash(ZeroExTransaction memory transaction)\n public\n view\n returns (bytes32 transactionHash)\n {\n transactionHash = getTransactionHash(transaction);\n return transactionHash;\n }\n}\n", + "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n" + }, + "sourceTreeHashHex": "0x2d256b13f2542ebde5880e37c88e2fee3a815d26882e4fdaefd5df58adfa3005", + "compiler": { + "name": "solc", + "version": "0.5.4+commit.9549d8ff.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "remappings": [ + "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} diff --git a/contracts/tec/generated-artifacts/TestMixins.json b/contracts/tec/generated-artifacts/TestMixins.json index f743664278..b83fef44bc 100644 --- a/contracts/tec/generated-artifacts/TestMixins.json +++ b/contracts/tec/generated-artifacts/TestMixins.json @@ -1,284 +1,284 @@ { - "schemaVersion": "2.0.0", - "contractName": "TestMixins", - "compilerOutput": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "hash", - "type": "bytes32" - }, - { - "name": "signature", - "type": "bytes" - } - ], - "name": "getSignerAddress", - "outputs": [ - { - "name": "signerAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "components": [ - { - "name": "makerAddress", - "type": "address" - }, - { - "name": "takerAddress", - "type": "address" - }, - { - "name": "feeRecipientAddress", - "type": "address" - }, - { - "name": "senderAddress", - "type": "address" - }, - { - "name": "makerAssetAmount", - "type": "uint256" - }, - { - "name": "takerAssetAmount", - "type": "uint256" - }, - { - "name": "makerFee", - "type": "uint256" - }, - { - "name": "takerFee", - "type": "uint256" - }, - { - "name": "expirationTimeSeconds", - "type": "uint256" - }, - { - "name": "salt", - "type": "uint256" - }, - { - "name": "makerAssetData", - "type": "bytes" - }, - { - "name": "takerAssetData", - "type": "bytes" - } - ], - "name": "orders", - "type": "tuple[]" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "assertValidTransactionOrdersApproval", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "assertValidTECApprovals", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EIP712_DOMAIN_HASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "0x7f454950373132446f6d61696e280000000000000000000000000000000000000060a09081527f737472696e67206e616d652c000000000000000000000000000000000000000060ad527f737472696e672076657273696f6e2c000000000000000000000000000000000060b9527f6164647265737320766572696679696e67436f6e74726163740000000000000060c8527f290000000000000000000000000000000000000000000000000000000000000060e152604260808190529020610142604052602760e2818152906123ce610102398051602091820120604080518082018252600581527f312e302e3000000000000000000000000000000000000000000000000000000090840152805180840194909452838101919091527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060840152306080808501919091528151808503909101815260a090930190528151910120600055612259806101756000396000f3fe608060405234801561001057600080fd5b5060043610610068577c010000000000000000000000000000000000000000000000000000000060003504630f7d8e39811461006d57806355fc233c146100965780636c42c828146100ab578063e306f779146100be575b600080fd5b61008061007b366004611a91565b6100d3565b60405161008d919061201d565b60405180910390f35b6100a96100a4366004611b77565b6104c8565b005b6100a96100b9366004611c63565b610732565b6100c6610761565b60405161008d919061202b565b600080825111151561011a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120d9565b60405180910390fd5b600061012583610767565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff821610610187576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b60008160ff16600381111561019857fe5b905060008160038111156101a857fe5b14156101e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120c9565b60018160038111156101ee57fe5b141561032c57835160411461022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561024057fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050600061028286600163ffffffff61082b16565b9050600061029787602163ffffffff61082b16565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104c295505050505050565b600281600381111561033a57fe5b141561049057835160411461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561038c57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103ce86600163ffffffff61082b16565b905060006103e387602163ffffffff61082b16565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b92915050565b60006104d386610876565b60408051600080825260208201909252845192935091905b818110156105bf576000868281518110151561050357fe5b906020019060200201519050610517611422565b5060408051606081018252868152602081018a905290810182905242821161056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612089565b600061057682610889565b9050600061059b828a8781518110151561058c57fe5b906020019060200201516100d3565b90506105ad878263ffffffff61089716565b965050600190930192506104eb915050565b50865160005b818110156107265788516000908a90839081106105de57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561060d5761071e565b6000898281518110151561061d57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106635761065b853263ffffffff61089716565b94505061071e565b6000610675868363ffffffff61096116565b90508015156106b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612049565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806106e357506106e3863263ffffffff61096116565b151561071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120e9565b50505b6001016105c5565b50505050505050505050565b606061074185604001516109d9565b905060008151111561075a5761075a85828686866104c8565b5050505050565b60005481565b60008082511115156107a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120b9565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106107d557fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b60008160200183511015151561086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612099565b50016020015190565b60006104c261088483610e91565b61104d565b60006104c26108848361108d565b8151604051606091849060208082028084018201929101828510156108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612079565b82851115610902576108fb85858361121f565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110151561092f57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b818110156109ce578373ffffffffffffffffffffffffffffffffffffffff16858281518110151561099557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614156109c6576001925050506104c2565b600101610968565b506000949350505050565b606060006109ed838263ffffffff6112e316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610a8057507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610acc57507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610b5657610ad9611447565b8351610aef90859060049063ffffffff61135016565b806020019051610b029190810190611ae3565b604080516001808252818301909252919250816020015b610b21611447565b815260200190600190039081610b1957905050925080836000815181101515610b4657fe5b6020908102909101015250610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610be757507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610c3357507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610c7f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610ccb57507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610d1757507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610d6357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610d98578251610d7e90849060049063ffffffff61135016565b806020019051610d919190810190611a54565b9150610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610e8b57610dea611447565b610df2611447565b8451610e0890869060049063ffffffff61135016565b806020019051610e1b9190810190611b18565b60408051600280825260608201909252929450909250816020015b610e3e611447565b815260200190600190039081610e3657905050935081846000815181101515610e6357fe5b602090810290910101528351819085906001908110610e7e57fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b60208310610fc557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610f88565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256121fb8239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b602083106111ad57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611170565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611249576001816020036101000a0380198351168185511680821786525050506112de565b82821415611256576112de565b828211156112905760208103905080820181840181515b8285101561128857845186526020958601959094019361126d565b9052506112de565b60208103905080820181840183515b818612156112d957825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061129f565b855250505b505050565b600081600401835110151515611325576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120f9565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60608183111561138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612059565b83518211156113c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612069565b8282036040519080825280601f01601f1916602001820160405280156113f4576020820181803883390190505b5090506114156114038261141c565b8461140d8761141c565b01835161121f565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114158235612197565b60006114158251612197565b6000601f8201831361152a57600080fd5b813561153d61153882612130565b612109565b81815260209384019390925082018360005b8381101561157b578135860161156588826116bb565b845250602092830192919091019060010161154f565b5050505092915050565b6000601f8201831361159657600080fd5b81516115a461153882612130565b81815260209384019390925082018360005b8381101561157b57815186016115cc8882611899565b84525060209283019291909101906001016115b6565b6000601f820183136115f357600080fd5b813561160161153882612130565b81815260209384019390925082018360005b8381101561157b57813586016116298882611750565b8452506020928301929190910190600101611613565b6000601f8201831361165057600080fd5b813561165e61153882612130565b9150818183526020840193506020810190508385602084028201111561168357600080fd5b60005b8381101561157b578161169988826116af565b8452506020928301929190910190600101611686565b600061141582356121a2565b6000601f820183136116cc57600080fd5b81356116da61153882612151565b915080825260208301602083018583830111156116f657600080fd5b6117018382846121be565b50505092915050565b6000601f8201831361171b57600080fd5b815161172961153882612151565b9150808252602083016020830185838301111561174557600080fd5b6117018382846121ca565b6000610180828403121561176357600080fd5b61176e610180612109565b9050600061177c8484611501565b825250602061178d84848301611501565b60208301525060406117a184828501611501565b60408301525060606117b584828501611501565b60608301525060806117c9848285016116af565b60808301525060a06117dd848285016116af565b60a08301525060c06117f1848285016116af565b60c08301525060e0611805848285016116af565b60e08301525061010061181a848285016116af565b61010083015250610120611830848285016116af565b6101208301525061014082013567ffffffffffffffff81111561185257600080fd5b61185e848285016116bb565b6101408301525061016082013567ffffffffffffffff81111561188057600080fd5b61188c848285016116bb565b6101608301525092915050565b600061018082840312156118ac57600080fd5b6118b7610180612109565b905060006118c5848461150d565b82525060206118d68484830161150d565b60208301525060406118ea8482850161150d565b60408301525060606118fe8482850161150d565b606083015250608061191284828501611a48565b60808301525060a061192684828501611a48565b60a08301525060c061193a84828501611a48565b60c08301525060e061194e84828501611a48565b60e08301525061010061196384828501611a48565b6101008301525061012061197984828501611a48565b6101208301525061014082015167ffffffffffffffff81111561199b57600080fd5b6119a78482850161170a565b6101408301525061016082015167ffffffffffffffff8111156119c957600080fd5b61188c8482850161170a565b6000606082840312156119e757600080fd5b6119f16060612109565b905060006119ff84846116af565b8252506020611a1084848301611501565b602083015250604082013567ffffffffffffffff811115611a3057600080fd5b611a3c848285016116bb565b60408301525092915050565b600061141582516121a2565b600060208284031215611a6657600080fd5b815167ffffffffffffffff811115611a7d57600080fd5b611a8984828501611585565b949350505050565b60008060408385031215611aa457600080fd5b6000611ab085856116af565b925050602083013567ffffffffffffffff811115611acd57600080fd5b611ad9858286016116bb565b9150509250929050565b600060208284031215611af557600080fd5b815167ffffffffffffffff811115611b0c57600080fd5b611a8984828501611899565b60008060408385031215611b2b57600080fd5b825167ffffffffffffffff811115611b4257600080fd5b611b4e85828601611899565b925050602083015167ffffffffffffffff811115611b6b57600080fd5b611ad985828601611899565b600080600080600060a08688031215611b8f57600080fd5b853567ffffffffffffffff811115611ba657600080fd5b611bb2888289016119d5565b955050602086013567ffffffffffffffff811115611bcf57600080fd5b611bdb888289016115e2565b945050604086013567ffffffffffffffff811115611bf857600080fd5b611c04888289016116bb565b935050606086013567ffffffffffffffff811115611c2157600080fd5b611c2d8882890161163f565b925050608086013567ffffffffffffffff811115611c4a57600080fd5b611c5688828901611519565b9150509295509295909350565b60008060008060808587031215611c7957600080fd5b843567ffffffffffffffff811115611c9057600080fd5b611c9c878288016119d5565b945050602085013567ffffffffffffffff811115611cb957600080fd5b611cc5878288016116bb565b935050604085013567ffffffffffffffff811115611ce257600080fd5b611cee8782880161163f565b925050606085013567ffffffffffffffff811115611d0b57600080fd5b611d1787828801611519565b91505092959194509250565b611d2c81612197565b82525050565b611d2c816121a2565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104c28284611d23565b602081016104c28284611d32565b602080825281016104c281611d3b565b602080825281016104c281611d6b565b602080825281016104c281611d9b565b602080825281016104c281611dcb565b602080825281016104c281611dfb565b602080825281016104c281611e2b565b602080825281016104c281611e5b565b602080825281016104c281611eb1565b602080825281016104c281611ee1565b602080825281016104c281611f37565b602080825281016104c281611f67565b602080825281016104c281611f97565b602080825281016104c281611fc7565b60405181810167ffffffffffffffff8111828210171561212857600080fd5b604052919050565b600067ffffffffffffffff82111561214757600080fd5b5060209081020190565b600067ffffffffffffffff82111561216857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60006104c2826121a5565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b838110156121e55781810151838201526020016121cd565b838111156121f4576000848401525b5050505056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a72305820a7dc4db5ec1936281b9753d70f5cf618cba7a682c53caa572159a5117a653c926c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", - "opcodes": "PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0xA0 SWAP1 DUP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0xAD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0xB9 MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0xC8 MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0xE1 MSTORE PUSH1 0x42 PUSH1 0x80 DUP2 SWAP1 MSTORE SWAP1 KECCAK256 PUSH2 0x142 PUSH1 0x40 MSTORE PUSH1 0x27 PUSH1 0xE2 DUP2 DUP2 MSTORE SWAP1 PUSH2 0x23CE PUSH2 0x102 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE DUP1 MLOAD DUP1 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP4 ADD SWAP1 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH2 0x2259 DUP1 PUSH2 0x175 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x68 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0xF7D8E39 DUP2 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xBE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x80 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x1A91 JUMP JUMPDEST PUSH2 0xD3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA9 PUSH2 0xA4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B77 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA9 PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x732 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x202B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x11A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x125 DUP4 PUSH2 0x767 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x187 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A8 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1EE JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x32C JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x240 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x282 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x297 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4C2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x33A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x490 JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3CE DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E3 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP7 PUSH2 0x876 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5BF JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x503 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x517 PUSH2 0x1422 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x56B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x576 DUP3 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x59B DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x58C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0xD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x5AD DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x4EB SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x726 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x5DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x60D JUMPI PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x61D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x663 JUMPI PUSH2 0x65B DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x675 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x6E3 JUMPI POP PUSH2 0x6E3 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20E9 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5C5 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x741 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x9D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x75A JUMPI PUSH2 0x75A DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4C8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20B9 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x7D5 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x86D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2099 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0xE91 JUMP JUMPDEST PUSH2 0x104D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0x108D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2079 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x902 JUMPI PUSH2 0x8FB DUP6 DUP6 DUP4 PUSH2 0x121F JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x92F JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CE JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x995 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9C6 JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4C2 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x968 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9ED DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x12E3 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xA80 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xACC JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xB56 JUMPI PUSH2 0xAD9 PUSH2 0x1447 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xAEF SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xB02 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xB21 PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xB19 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB46 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xBE7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC33 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC7F JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCCB JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD17 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD63 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xD98 JUMPI DUP3 MLOAD PUSH2 0xD7E SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD91 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1A54 JUMP JUMPDEST SWAP2 POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xE8B JUMPI PUSH2 0xDEA PUSH2 0x1447 JUMP JUMPDEST PUSH2 0xDF2 PUSH2 0x1447 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xE08 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE1B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE3E PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xE36 JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE63 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xE7E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xFC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xF88 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x21FB DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x11AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1170 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1249 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x1256 JUMPI PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1290 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1288 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x126D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x12DE JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x12D9 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x129F JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x1325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20F9 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2059 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x13C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2069 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1415 PUSH2 0x1403 DUP3 PUSH2 0x141C JUMP JUMPDEST DUP5 PUSH2 0x140D DUP8 PUSH2 0x141C JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x121F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x152A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x153D PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST PUSH2 0x2109 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1565 DUP9 DUP3 PUSH2 0x16BB JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x154F JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15A4 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x15CC DUP9 DUP3 PUSH2 0x1899 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x15F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1601 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1629 DUP9 DUP3 PUSH2 0x1750 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1613 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x165E PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 PUSH2 0x1699 DUP9 DUP3 PUSH2 0x16AF JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1686 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x16F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21BE JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x171B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1729 PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21CA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x176E PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x177C DUP5 DUP5 PUSH2 0x1501 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x178D DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x17A1 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x17B5 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x17C9 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x17DD DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x17F1 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1805 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x181A DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1830 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185E DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B7 PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18C5 DUP5 DUP5 PUSH2 0x150D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x18D6 DUP5 DUP5 DUP4 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x18EA DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x18FE DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1912 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x1926 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x193A DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x194E DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1963 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1979 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A7 DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19F1 PUSH1 0x60 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x19FF DUP5 DUP5 PUSH2 0x16AF JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1A10 DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1585 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1AB0 DUP6 DUP6 PUSH2 0x16AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B4E DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1B8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP9 DUP3 DUP10 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BDB DUP9 DUP3 DUP10 ADD PUSH2 0x15E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C04 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C2D DUP9 DUP3 DUP10 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C56 DUP9 DUP3 DUP10 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1C79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C9C DUP8 DUP3 DUP9 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CC5 DUP8 DUP3 DUP9 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CEE DUP8 DUP3 DUP9 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D17 DUP8 DUP3 DUP9 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x2197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D32 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D9B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DCB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DFB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E5B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EB1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EE1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F67 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F97 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1FC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 DUP3 PUSH2 0x21A5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21E5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x21CD JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A72305820A7DC4DB5 0xec NOT CALLDATASIZE 0x28 SHL SWAP8 MSTORE8 0xd7 0xf 0x5c 0xf6 XOR 0xcb 0xa7 0xa6 DUP3 0xc5 EXTCODECOPY 0xaa JUMPI 0x21 MSIZE 0xa5 GT PUSH27 0x653C926C6578706572696D656E74616CF5003730782050726F746F PUSH4 0x6F6C2054 PUSH19 0x61646520457865637574696F6E20436F6F7264 PUSH10 0x6E61746F720000000000 ", - "sourceMap": "1083:148:9:-;;;;;;;;;;;;;;;;;22:32:-1;768:83:14;6:49:-1;;;1073:159:9;;1549:18;768:83:14;1549:18:9;;1083:148;1549:18;;;1083:148;1549:18;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;;;;;;;;;;;;;1583:39;1454:214;;;;1652:4;1454:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1454:214:9;;;;;;1444:225;;;;;-1:-1:-1;1423:246:9;768:83:14;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b5060043610610068577c010000000000000000000000000000000000000000000000000000000060003504630f7d8e39811461006d57806355fc233c146100965780636c42c828146100ab578063e306f779146100be575b600080fd5b61008061007b366004611a91565b6100d3565b60405161008d919061201d565b60405180910390f35b6100a96100a4366004611b77565b6104c8565b005b6100a96100b9366004611c63565b610732565b6100c6610761565b60405161008d919061202b565b600080825111151561011a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120d9565b60405180910390fd5b600061012583610767565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff821610610187576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b60008160ff16600381111561019857fe5b905060008160038111156101a857fe5b14156101e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120c9565b60018160038111156101ee57fe5b141561032c57835160411461022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561024057fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050600061028286600163ffffffff61082b16565b9050600061029787602163ffffffff61082b16565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104c295505050505050565b600281600381111561033a57fe5b141561049057835160411461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561038c57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103ce86600163ffffffff61082b16565b905060006103e387602163ffffffff61082b16565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b92915050565b60006104d386610876565b60408051600080825260208201909252845192935091905b818110156105bf576000868281518110151561050357fe5b906020019060200201519050610517611422565b5060408051606081018252868152602081018a905290810182905242821161056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612089565b600061057682610889565b9050600061059b828a8781518110151561058c57fe5b906020019060200201516100d3565b90506105ad878263ffffffff61089716565b965050600190930192506104eb915050565b50865160005b818110156107265788516000908a90839081106105de57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561060d5761071e565b6000898281518110151561061d57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106635761065b853263ffffffff61089716565b94505061071e565b6000610675868363ffffffff61096116565b90508015156106b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612049565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806106e357506106e3863263ffffffff61096116565b151561071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120e9565b50505b6001016105c5565b50505050505050505050565b606061074185604001516109d9565b905060008151111561075a5761075a85828686866104c8565b5050505050565b60005481565b60008082511115156107a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120b9565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106107d557fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b60008160200183511015151561086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612099565b50016020015190565b60006104c261088483610e91565b61104d565b60006104c26108848361108d565b8151604051606091849060208082028084018201929101828510156108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612079565b82851115610902576108fb85858361121f565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110151561092f57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b818110156109ce578373ffffffffffffffffffffffffffffffffffffffff16858281518110151561099557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614156109c6576001925050506104c2565b600101610968565b506000949350505050565b606060006109ed838263ffffffff6112e316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610a8057507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610acc57507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610b5657610ad9611447565b8351610aef90859060049063ffffffff61135016565b806020019051610b029190810190611ae3565b604080516001808252818301909252919250816020015b610b21611447565b815260200190600190039081610b1957905050925080836000815181101515610b4657fe5b6020908102909101015250610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610be757507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610c3357507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610c7f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610ccb57507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610d1757507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610d6357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610d98578251610d7e90849060049063ffffffff61135016565b806020019051610d919190810190611a54565b9150610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610e8b57610dea611447565b610df2611447565b8451610e0890869060049063ffffffff61135016565b806020019051610e1b9190810190611b18565b60408051600280825260608201909252929450909250816020015b610e3e611447565b815260200190600190039081610e3657905050935081846000815181101515610e6357fe5b602090810290910101528351819085906001908110610e7e57fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b60208310610fc557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610f88565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256121fb8239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b602083106111ad57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611170565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611249576001816020036101000a0380198351168185511680821786525050506112de565b82821415611256576112de565b828211156112905760208103905080820181840181515b8285101561128857845186526020958601959094019361126d565b9052506112de565b60208103905080820181840183515b818612156112d957825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061129f565b855250505b505050565b600081600401835110151515611325576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120f9565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60608183111561138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612059565b83518211156113c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612069565b8282036040519080825280601f01601f1916602001820160405280156113f4576020820181803883390190505b5090506114156114038261141c565b8461140d8761141c565b01835161121f565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114158235612197565b60006114158251612197565b6000601f8201831361152a57600080fd5b813561153d61153882612130565b612109565b81815260209384019390925082018360005b8381101561157b578135860161156588826116bb565b845250602092830192919091019060010161154f565b5050505092915050565b6000601f8201831361159657600080fd5b81516115a461153882612130565b81815260209384019390925082018360005b8381101561157b57815186016115cc8882611899565b84525060209283019291909101906001016115b6565b6000601f820183136115f357600080fd5b813561160161153882612130565b81815260209384019390925082018360005b8381101561157b57813586016116298882611750565b8452506020928301929190910190600101611613565b6000601f8201831361165057600080fd5b813561165e61153882612130565b9150818183526020840193506020810190508385602084028201111561168357600080fd5b60005b8381101561157b578161169988826116af565b8452506020928301929190910190600101611686565b600061141582356121a2565b6000601f820183136116cc57600080fd5b81356116da61153882612151565b915080825260208301602083018583830111156116f657600080fd5b6117018382846121be565b50505092915050565b6000601f8201831361171b57600080fd5b815161172961153882612151565b9150808252602083016020830185838301111561174557600080fd5b6117018382846121ca565b6000610180828403121561176357600080fd5b61176e610180612109565b9050600061177c8484611501565b825250602061178d84848301611501565b60208301525060406117a184828501611501565b60408301525060606117b584828501611501565b60608301525060806117c9848285016116af565b60808301525060a06117dd848285016116af565b60a08301525060c06117f1848285016116af565b60c08301525060e0611805848285016116af565b60e08301525061010061181a848285016116af565b61010083015250610120611830848285016116af565b6101208301525061014082013567ffffffffffffffff81111561185257600080fd5b61185e848285016116bb565b6101408301525061016082013567ffffffffffffffff81111561188057600080fd5b61188c848285016116bb565b6101608301525092915050565b600061018082840312156118ac57600080fd5b6118b7610180612109565b905060006118c5848461150d565b82525060206118d68484830161150d565b60208301525060406118ea8482850161150d565b60408301525060606118fe8482850161150d565b606083015250608061191284828501611a48565b60808301525060a061192684828501611a48565b60a08301525060c061193a84828501611a48565b60c08301525060e061194e84828501611a48565b60e08301525061010061196384828501611a48565b6101008301525061012061197984828501611a48565b6101208301525061014082015167ffffffffffffffff81111561199b57600080fd5b6119a78482850161170a565b6101408301525061016082015167ffffffffffffffff8111156119c957600080fd5b61188c8482850161170a565b6000606082840312156119e757600080fd5b6119f16060612109565b905060006119ff84846116af565b8252506020611a1084848301611501565b602083015250604082013567ffffffffffffffff811115611a3057600080fd5b611a3c848285016116bb565b60408301525092915050565b600061141582516121a2565b600060208284031215611a6657600080fd5b815167ffffffffffffffff811115611a7d57600080fd5b611a8984828501611585565b949350505050565b60008060408385031215611aa457600080fd5b6000611ab085856116af565b925050602083013567ffffffffffffffff811115611acd57600080fd5b611ad9858286016116bb565b9150509250929050565b600060208284031215611af557600080fd5b815167ffffffffffffffff811115611b0c57600080fd5b611a8984828501611899565b60008060408385031215611b2b57600080fd5b825167ffffffffffffffff811115611b4257600080fd5b611b4e85828601611899565b925050602083015167ffffffffffffffff811115611b6b57600080fd5b611ad985828601611899565b600080600080600060a08688031215611b8f57600080fd5b853567ffffffffffffffff811115611ba657600080fd5b611bb2888289016119d5565b955050602086013567ffffffffffffffff811115611bcf57600080fd5b611bdb888289016115e2565b945050604086013567ffffffffffffffff811115611bf857600080fd5b611c04888289016116bb565b935050606086013567ffffffffffffffff811115611c2157600080fd5b611c2d8882890161163f565b925050608086013567ffffffffffffffff811115611c4a57600080fd5b611c5688828901611519565b9150509295509295909350565b60008060008060808587031215611c7957600080fd5b843567ffffffffffffffff811115611c9057600080fd5b611c9c878288016119d5565b945050602085013567ffffffffffffffff811115611cb957600080fd5b611cc5878288016116bb565b935050604085013567ffffffffffffffff811115611ce257600080fd5b611cee8782880161163f565b925050606085013567ffffffffffffffff811115611d0b57600080fd5b611d1787828801611519565b91505092959194509250565b611d2c81612197565b82525050565b611d2c816121a2565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104c28284611d23565b602081016104c28284611d32565b602080825281016104c281611d3b565b602080825281016104c281611d6b565b602080825281016104c281611d9b565b602080825281016104c281611dcb565b602080825281016104c281611dfb565b602080825281016104c281611e2b565b602080825281016104c281611e5b565b602080825281016104c281611eb1565b602080825281016104c281611ee1565b602080825281016104c281611f37565b602080825281016104c281611f67565b602080825281016104c281611f97565b602080825281016104c281611fc7565b60405181810167ffffffffffffffff8111828210171561212857600080fd5b604052919050565b600067ffffffffffffffff82111561214757600080fd5b5060209081020190565b600067ffffffffffffffff82111561216857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60006104c2826121a5565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b838110156121e55781810151838201526020016121cd565b838111156121f4576000848401525b5050505056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a72305820a7dc4db5ec1936281b9753d70f5cf618cba7a682c53caa572159a5117a653c926c6578706572696d656e74616cf50037", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x68 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0xF7D8E39 DUP2 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xBE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x80 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x1A91 JUMP JUMPDEST PUSH2 0xD3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA9 PUSH2 0xA4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B77 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA9 PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x732 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x202B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x11A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x125 DUP4 PUSH2 0x767 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x187 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A8 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1EE JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x32C JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x240 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x282 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x297 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4C2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x33A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x490 JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3CE DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E3 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP7 PUSH2 0x876 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5BF JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x503 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x517 PUSH2 0x1422 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x56B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x576 DUP3 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x59B DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x58C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0xD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x5AD DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x4EB SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x726 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x5DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x60D JUMPI PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x61D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x663 JUMPI PUSH2 0x65B DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x675 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x6E3 JUMPI POP PUSH2 0x6E3 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20E9 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5C5 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x741 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x9D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x75A JUMPI PUSH2 0x75A DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4C8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20B9 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x7D5 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x86D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2099 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0xE91 JUMP JUMPDEST PUSH2 0x104D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0x108D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2079 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x902 JUMPI PUSH2 0x8FB DUP6 DUP6 DUP4 PUSH2 0x121F JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x92F JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CE JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x995 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9C6 JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4C2 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x968 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9ED DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x12E3 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xA80 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xACC JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xB56 JUMPI PUSH2 0xAD9 PUSH2 0x1447 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xAEF SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xB02 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xB21 PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xB19 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB46 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xBE7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC33 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC7F JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCCB JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD17 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD63 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xD98 JUMPI DUP3 MLOAD PUSH2 0xD7E SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD91 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1A54 JUMP JUMPDEST SWAP2 POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xE8B JUMPI PUSH2 0xDEA PUSH2 0x1447 JUMP JUMPDEST PUSH2 0xDF2 PUSH2 0x1447 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xE08 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE1B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE3E PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xE36 JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE63 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xE7E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xFC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xF88 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x21FB DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x11AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1170 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1249 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x1256 JUMPI PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1290 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1288 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x126D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x12DE JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x12D9 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x129F JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x1325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20F9 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2059 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x13C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2069 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1415 PUSH2 0x1403 DUP3 PUSH2 0x141C JUMP JUMPDEST DUP5 PUSH2 0x140D DUP8 PUSH2 0x141C JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x121F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x152A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x153D PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST PUSH2 0x2109 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1565 DUP9 DUP3 PUSH2 0x16BB JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x154F JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15A4 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x15CC DUP9 DUP3 PUSH2 0x1899 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x15F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1601 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1629 DUP9 DUP3 PUSH2 0x1750 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1613 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x165E PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 PUSH2 0x1699 DUP9 DUP3 PUSH2 0x16AF JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1686 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x16F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21BE JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x171B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1729 PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21CA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x176E PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x177C DUP5 DUP5 PUSH2 0x1501 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x178D DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x17A1 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x17B5 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x17C9 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x17DD DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x17F1 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1805 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x181A DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1830 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185E DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B7 PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18C5 DUP5 DUP5 PUSH2 0x150D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x18D6 DUP5 DUP5 DUP4 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x18EA DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x18FE DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1912 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x1926 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x193A DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x194E DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1963 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1979 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A7 DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19F1 PUSH1 0x60 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x19FF DUP5 DUP5 PUSH2 0x16AF JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1A10 DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1585 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1AB0 DUP6 DUP6 PUSH2 0x16AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B4E DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1B8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP9 DUP3 DUP10 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BDB DUP9 DUP3 DUP10 ADD PUSH2 0x15E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C04 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C2D DUP9 DUP3 DUP10 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C56 DUP9 DUP3 DUP10 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1C79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C9C DUP8 DUP3 DUP9 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CC5 DUP8 DUP3 DUP9 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CEE DUP8 DUP3 DUP9 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D17 DUP8 DUP3 DUP9 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x2197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D32 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D9B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DCB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DFB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E5B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EB1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EE1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F67 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F97 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1FC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 DUP3 PUSH2 0x21A5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21E5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x21CD JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A72305820A7DC4DB5 0xec NOT CALLDATASIZE 0x28 SHL SWAP8 MSTORE8 0xd7 0xf 0x5c 0xf6 XOR 0xcb 0xa7 0xa6 DUP3 0xc5 EXTCODECOPY 0xaa JUMPI 0x21 MSIZE 0xa5 GT PUSH27 0x653C926C6578706572696D656E74616CF500370000000000000000 ", - "sourceMap": "768:83:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;768:83:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3439:2912:1;;;;;;;;;:::i;:::-;;1981:853;;;;;;;;;:::i;1339:33:9:-;;;:::i;:::-;;;;;;;;988:2549:0;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:0;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:0;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:0;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:0;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:0;;;;;;-1:-1:-1;2510:20:0;;-1:-1:-1;;;;;;2510:20:0;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:0;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:0;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:0;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:0;3499:31;;;;;;;;;;;988:2549;;;;;:::o;3439:2912:1:-;3813:23;3839:31;3858:11;3839:18;:31::i;:::-;3973:16;;;3987:1;3973:16;;;;;;;;;4027:25;;3813:57;;-1:-1:-1;3973:16:1;4027:25;4062:1090;4086:16;4082:1;:20;4062:1090;;;4162:44;4209:29;4239:1;4209:32;;;;;;;;;;;;;;;;;;4162:79;;4255:27;;:::i;:::-;-1:-1:-1;4285:222:1;;;;;;;;;;;;;;;;;;;;;;;4695:15;4656:54;;4569:191;;;;;;;;;;;;;;4839:20;4862:28;4881:8;4862:18;:28::i;:::-;4839:51;;4904:29;4936:53;4953:12;4967:18;4986:1;4967:21;;;;;;;;;;;;;;;;;;4936:16;:53::i;:::-;4904:85;-1:-1:-1;5088:53:1;:23;4904:85;5088:53;:30;:53;:::i;:::-;5062:79;-1:-1:-1;;4104:3:1;;;;;-1:-1:-1;4062:1090:1;;-1:-1:-1;;4062:1090:1;;-1:-1:-1;5193:13:1;;5170:20;5216:1129;5240:12;5236:1;:16;5216:1129;;;5351:9;;5386:1;;5351:6;;5358:1;;5351:9;;;;;;;;;;;;;;:23;;;:37;;;5347:84;;;5408:8;;5347:84;5537:23;5563:6;5570:1;5563:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;5610:28:1;;;5629:9;5610:28;5606:160;;;5684:41;:23;5715:9;5684:41;:30;:41;:::i;:::-;5658:67;;5743:8;;;5606:160;5857:20;5880:49;:23;5913:15;5880:49;:32;:49;:::i;:::-;5857:72;;5968:15;5943:100;;;;;;;;;;;;;;;;6201:25;;;;:38;;6230:9;6201:38;;:85;;-1:-1:-1;6243:43:1;:23;6276:9;6243:43;:32;:43;:::i;:::-;6176:158;;;;;;;;;;;;;;;;5216:1129;;;5254:3;;5216:1129;;;;3439:2912;;;;;;;;;:::o;1981:853::-;2350:30;2383:38;2404:11;:16;;;2383:20;:38::i;:::-;2350:71;;2508:1;2492:6;:13;:17;2488:340;;;2593:224;2647:11;2676:6;2700:20;2738:29;2785:18;2593:36;:224::i;:::-;1981:853;;;;;:::o;1339:33:9:-;;;;:::o;8315:448:19:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:19;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:19;13631:2;13729:13;13723:20;;13292:490::o;1514:406:11:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:10:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;1089:2103:18:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:18;;-1:-1:-1;;;;;1089:2103:18;;;;:::o;3431:342::-;3580:19;;3543:4;;;3609:136;3633:6;3629:1;:10;3609:136;;;3683:6;3664:25;;:12;3677:1;3664:15;;;;;;;;;;;;;;;;;;:25;;;3660:75;;;3716:4;3709:11;;;;;;3660:75;3641:3;;3609:136;;;-1:-1:-1;3761:5:18;;3431:342;-1:-1:-1;;;;3431:342:18:o;6563:1760:1:-;6659:30;6705:15;6723:18;:4;6705:15;6723:18;:15;:18;:::i;:::-;6705:36;-1:-1:-1;6768:31:1;;;6780:19;6768:31;;:87;;-1:-1:-1;6815:40:1;;;6827:28;6815:40;6768:87;:142;;;-1:-1:-1;6871:39:1;;;6883:27;6871:39;6768:142;6751:1543;;;6971:27;;:::i;:::-;7044:11;;7030:26;;7044:4;;7041:1;;7030:26;:10;:26;:::i;:::-;7002:102;;;;;;;;;;;;;;7127:23;;;7148:1;7127:23;;;;;;;;;6970:134;;-1:-1:-1;7127:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7118:32;;7176:5;7164:6;7171:1;7164:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6751:1543:1;;;7215:38;;;7227:26;7215:38;;:101;;-1:-1:-1;7269:47:1;;;7281:35;7269:47;7215:101;:163;;;-1:-1:-1;7332:46:1;;;7344:34;7332:46;7215:163;:217;;;-1:-1:-1;7394:38:1;;;7406:26;7394:38;7215:217;:280;;;-1:-1:-1;7448:47:1;;;7460:35;7448:47;7215:280;:335;;;-1:-1:-1;7511:39:1;;;7523:27;7511:39;7215:335;:399;;;-1:-1:-1;7566:48:1;;;7578:36;7566:48;7215:399;7198:1096;;;7763:11;;7749:26;;7763:4;;7760:1;;7749:26;:10;:26;:::i;:::-;7721:104;;;;;;;;;;;;;;7710:115;;7198:1096;;;7846:33;;;7858:21;7846:33;7842:452;;;7940:31;;:::i;:::-;7973:32;;:::i;:::-;8051:11;;8037:26;;8051:4;;8048:1;;8037:26;:10;:26;:::i;:::-;8009:118;;;;;;;;;;;;;;8189:23;;;8210:1;8189:23;;;;;;;;;7939:188;;-1:-1:-1;7939:188:1;;-1:-1:-1;8189:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8180:32;;8238:9;8226:6;8233:1;8226:9;;;;;;;;;;;;;;;;;;:21;8261:9;;8273:10;;8261:6;;8268:1;;8261:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7842:452:1;-1:-1:-1;6563:1760:1;;;:::o;2167:1395:11:-;823:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;823:146:11;;;;;;;813:157;;;;;;;;;2410:16;;;;2400:27;;2283:14;;813:157;2283:14;;823:146;;;;2400:27;;;;823:146;2400:27;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2400:27:11;;;;;;;;;;;;2525:16;;2575:25;;;;2999:26;;;3125:15;;;3118:29;;;;3270:42;3251:62;;;3234:15;;;3227:87;;;;-1:-1:-1;;;;3364:2:11;3352:15;;3345:33;;;;-1:-1:-1;3519:3:11;3501:22;;;2167:1395::o;1872:924:9:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:10:-;810:183;;;;;;;;;;;;;;;;;;;2349:14;;;;810:183;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:10;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2476:40:10;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3229:15;;;3222:40;;;;3316:15;;;3309:49;;;;3424:2;3412:15;;3405:54;;;;-1:-1:-1;;3562:3:10;3544:22;;;;2248:1357;-1:-1:-1;;;2248:1357:10:o;1808:4337:19:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:19;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:19;1808:4337;;;:::o;15595:687::-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:19;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:19;87:34:-1;135:17;;-1:-1;6890:20:19;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;768:83:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;;728:14;357:611;;;;;;;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1457;;;;;;12605:3;12593:9;12584:7;12580:23;12576:33;12573:2;;;12622:1;12619;12612:12;12573:2;12657:31;;12708:18;12697:30;;12694:2;;;12740:1;12737;12730:12;12694:2;12760:87;12839:7;12830:6;12819:9;12815:22;12760:87;;;12750:97;;12636:217;12912:2;12901:9;12897:18;12884:32;12936:18;12928:6;12925:30;12922:2;;;12968:1;12965;12958:12;12922:2;12988:97;13077:7;13068:6;13057:9;13053:22;12988:97;;;12978:107;;12863:228;13150:2;13139:9;13135:18;13122:32;13174:18;13166:6;13163:30;13160:2;;;13206:1;13203;13196:12;13160:2;13226:62;13280:7;13271:6;13260:9;13256:22;13226:62;;;13216:72;;13101:193;13353:2;13342:9;13338:18;13325:32;13377:18;13369:6;13366:30;13363:2;;;13409:1;13406;13399:12;13363:2;13429:78;13499:7;13490:6;13479:9;13475:22;13429:78;;;13419:88;;13304:209;13572:3;13561:9;13557:19;13544:33;13597:18;13589:6;13586:30;13583:2;;;13629:1;13626;13619:12;13583:2;13649:83;13724:7;13715:6;13704:9;13700:22;13649:83;;;13639:93;;13523:215;12567:1181;;;;;;;;;13755:1157;;;;;14008:3;13996:9;13987:7;13983:23;13979:33;13976:2;;;14025:1;14022;14015:12;13976:2;14060:31;;14111:18;14100:30;;14097:2;;;14143:1;14140;14133:12;14097:2;14163:87;14242:7;14233:6;14222:9;14218:22;14163:87;;;14153:97;;14039:217;14315:2;14304:9;14300:18;14287:32;14339:18;14331:6;14328:30;14325:2;;;14371:1;14368;14361:12;14325:2;14391:62;14445:7;14436:6;14425:9;14421:22;14391:62;;;14381:72;;14266:193;14518:2;14507:9;14503:18;14490:32;14542:18;14534:6;14531:30;14528:2;;;14574:1;14571;14564:12;14528:2;14594:78;14664:7;14655:6;14644:9;14640:22;14594:78;;;14584:88;;14469:209;14737:2;14726:9;14722:18;14709:32;14761:18;14753:6;14750:30;14747:2;;;14793:1;14790;14783:12;14747:2;14813:83;14888:7;14879:6;14868:9;14864:22;14813:83;;;14803:93;;14688:214;13970:942;;;;;;;;14919:120;15002:31;15027:5;15002:31;;;14997:3;14990:44;14984:55;;;15046:120;15129:31;15154:5;15129:31;;15174:306;15339:2;15327:15;;15376:66;15371:2;15362:12;;15355:88;15471:2;15462:12;;15320:160;15489:306;15654:2;15642:15;;15691:66;15686:2;15677:12;;15670:88;15786:2;15777:12;;15635:160;15804:306;15969:2;15957:15;;16006:66;16001:2;15992:12;;15985:88;16101:2;16092:12;;15950:160;16119:306;16284:2;16272:15;;16321:66;16316:2;16307:12;;16300:88;16416:2;16407:12;;16265:160;16434:306;16599:2;16587:15;;16636:66;16631:2;16622:12;;16615:88;16731:2;16722:12;;16580:160;16749:306;16914:2;16902:15;;16951:66;16946:2;16937:12;;16930:88;17046:2;17037:12;;16895:160;17064:407;17229:2;17217:15;;17266:66;17261:2;17252:12;;17245:88;17367:66;17362:2;17353:12;;17346:88;17462:2;17453:12;;17210:261;17480:306;17645:2;17633:15;;17682:66;17677:2;17668:12;;17661:88;17777:2;17768:12;;17626:160;17795:407;17960:2;17948:15;;17997:66;17992:2;17983:12;;17976:88;18098:66;18093:2;18084:12;;18077:88;18193:2;18184:12;;17941:261;18211:306;18376:2;18364:15;;18413:66;18408:2;18399:12;;18392:88;18508:2;18499:12;;18357:160;18526:306;18691:2;18679:15;;18728:66;18723:2;18714:12;;18707:88;18823:2;18814:12;;18672:160;18841:306;19006:2;18994:15;;19043:66;19038:2;19029:12;;19022:88;19138:2;19129:12;;18987:160;19156:407;19321:2;19309:15;;19358:66;19353:2;19344:12;;19337:88;19459:66;19454:2;19445:12;;19438:88;19554:2;19545:12;;19302:261;19571:213;19689:2;19674:18;;19703:71;19678:9;19747:6;19703:71;;19791:213;19909:2;19894:18;;19923:71;19898:9;19967:6;19923:71;;20011:407;20202:2;20216:47;;;20187:18;;20277:131;20187:18;20277:131;;20425:407;20616:2;20630:47;;;20601:18;;20691:131;20601:18;20691:131;;20839:407;21030:2;21044:47;;;21015:18;;21105:131;21015:18;21105:131;;21253:407;21444:2;21458:47;;;21429:18;;21519:131;21429:18;21519:131;;21667:407;21858:2;21872:47;;;21843:18;;21933:131;21843:18;21933:131;;22081:407;22272:2;22286:47;;;22257:18;;22347:131;22257:18;22347:131;;22495:407;22686:2;22700:47;;;22671:18;;22761:131;22671:18;22761:131;;22909:407;23100:2;23114:47;;;23085:18;;23175:131;23085:18;23175:131;;23323:407;23514:2;23528:47;;;23499:18;;23589:131;23499:18;23589:131;;23737:407;23928:2;23942:47;;;23913:18;;24003:131;23913:18;24003:131;;24151:407;24342:2;24356:47;;;24327:18;;24417:131;24327:18;24417:131;;24565:407;24756:2;24770:47;;;24741:18;;24831:131;24741:18;24831:131;;24979:407;25170:2;25184:47;;;25155:18;;25245:131;25155:18;25245:131;;25393:256;25455:2;25449:9;25481:17;;;25556:18;25541:34;;25577:22;;;25538:62;25535:2;;;25613:1;25610;25603:12;25535:2;25629;25622:22;25433:216;;-1:-1;25433:216;25656:263;;25820:18;25812:6;25809:30;25806:2;;;25852:1;25849;25842:12;25806:2;-1:-1;25881:4;25869:17;;;25899:15;;25743:176;26755:254;;26894:18;26886:6;26883:30;26880:2;;;26926:1;26923;26916:12;26880:2;-1:-1;26999:4;26970;26947:17;;;;26966:9;26943:33;26989:15;;26817:192;27281:105;;27350:31;27375:5;27350:31;;27393:79;27462:5;27445:27;27479:128;27559:42;27548:54;;27531:76;27899:145;27980:6;27975:3;27970;27957:30;-1:-1;28036:1;28018:16;;28011:27;27950:94;28053:268;28118:1;28125:101;28139:6;28136:1;28133:13;28125:101;;;28206:11;;;28200:18;28187:11;;;28180:39;28161:2;28154:10;28125:101;;;28241:6;28238:1;28235:13;28232:2;;;28306:1;28297:6;28292:3;28288:16;28281:27;28232:2;28102:219;;;;" - } - } - }, - "sources": { - "test/TestMixins.sol": { - "id": 14 - }, - "src/MixinSignatureValidator.sol": { - "id": 0 - }, - "@0x/contracts-utils/contracts/src/LibBytes.sol": { - "id": 19 - }, - "src/mixins/MSignatureValidator.sol": { - "id": 12 - }, - "src/interfaces/ISignatureValidator.sol": { - "id": 4 - }, - "src/MixinTECApprovalVerifier.sol": { - "id": 1 - }, - "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { - "id": 16 - }, - "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { - "id": 17 - }, - "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { - "id": 15 - }, - "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { - "id": 18 - }, - "src/libs/LibTECApproval.sol": { - "id": 10 - }, - "src/libs/LibEIP712Domain.sol": { - "id": 9 - }, - "src/libs/LibZeroExTransaction.sol": { - "id": 11 - }, - "src/mixins/MTECApprovalVerifier.sol": { - "id": 13 - }, - "src/interfaces/ITECApprovalVerifier.sol": { - "id": 5 - } - }, - "sourceCodes": { - "test/TestMixins.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../src/MixinSignatureValidator.sol\";\nimport \"../src/MixinTECApprovalVerifier.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract TestMixins is\n MixinSignatureValidator,\n MixinTECApprovalVerifier\n{}\n", - "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", - "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", - "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", - "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", - "src/MixinTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibTECApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinTECApprovalVerifier is\n LibExchangeSelectors,\n LibTECApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MTECApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i < signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n TECApproval memory approval = TECApproval({\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getTECApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i < ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n address approverAddress = orders[i].feeRecipientAddress;\n if (approverAddress == tx.origin) {\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n\n // The Ethereum transaction signer must be the 0x transaction signer or an approver of the 0x transaction\n require(\n transaction.signerAddress == tx.origin || approvalSignerAddresses.contains(tx.origin),\n \"INVALID_SENDER\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", - "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", - "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", - "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return true;\n }\n }\n return false;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool, uint256)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return (true, i);\n }\n }\n return (false, 0);\n }\n}\n", - "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/mixins/MTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ITECApprovalVerifier.sol\";\n\n\ncontract MTECApprovalVerifier is\n ITECApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", - "src/interfaces/ITECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n" - }, - "sourceTreeHashHex": "0x80e5c5d9f07cb233e9bb5306b6e8537da3b45a523553bdd1d1a1b2209a63c30c", - "compiler": { - "name": "solc", - "version": "0.5.3+commit.10d17f24.Linux.g++", - "settings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode.object", - "evm.bytecode.sourceMap", - "evm.deployedBytecode.object", - "evm.deployedBytecode.sourceMap" - ] - } - }, - "remappings": [ - "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", - "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" - ] - } - }, - "networks": {} -} \ No newline at end of file + "schemaVersion": "2.0.0", + "contractName": "TestMixins", + "compilerOutput": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "bytes32" + }, + { + "name": "signature", + "type": "bytes" + } + ], + "name": "getSignerAddress", + "outputs": [ + { + "name": "signerAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "components": [ + { + "name": "makerAddress", + "type": "address" + }, + { + "name": "takerAddress", + "type": "address" + }, + { + "name": "feeRecipientAddress", + "type": "address" + }, + { + "name": "senderAddress", + "type": "address" + }, + { + "name": "makerAssetAmount", + "type": "uint256" + }, + { + "name": "takerAssetAmount", + "type": "uint256" + }, + { + "name": "makerFee", + "type": "uint256" + }, + { + "name": "takerFee", + "type": "uint256" + }, + { + "name": "expirationTimeSeconds", + "type": "uint256" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "makerAssetData", + "type": "bytes" + }, + { + "name": "takerAssetData", + "type": "bytes" + } + ], + "name": "orders", + "type": "tuple[]" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTransactionOrdersApproval", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTECApprovals", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EIP712_DOMAIN_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x7f454950373132446f6d61696e280000000000000000000000000000000000000060a09081527f737472696e67206e616d652c000000000000000000000000000000000000000060ad527f737472696e672076657273696f6e2c000000000000000000000000000000000060b9527f6164647265737320766572696679696e67436f6e74726163740000000000000060c8527f290000000000000000000000000000000000000000000000000000000000000060e152604260808190529020610142604052602760e2818152906123ce610102398051602091820120604080518082018252600581527f312e302e3000000000000000000000000000000000000000000000000000000090840152805180840194909452838101919091527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060840152306080808501919091528151808503909101815260a090930190528151910120600055612259806101756000396000f3fe608060405234801561001057600080fd5b5060043610610068577c010000000000000000000000000000000000000000000000000000000060003504630f7d8e39811461006d57806355fc233c146100965780636c42c828146100ab578063e306f779146100be575b600080fd5b61008061007b366004611a91565b6100d3565b60405161008d919061201d565b60405180910390f35b6100a96100a4366004611b77565b6104c8565b005b6100a96100b9366004611c63565b610732565b6100c6610761565b60405161008d919061202b565b600080825111151561011a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120d9565b60405180910390fd5b600061012583610767565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff821610610187576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b60008160ff16600381111561019857fe5b905060008160038111156101a857fe5b14156101e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120c9565b60018160038111156101ee57fe5b141561032c57835160411461022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561024057fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050600061028286600163ffffffff61082b16565b9050600061029787602163ffffffff61082b16565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104c295505050505050565b600281600381111561033a57fe5b141561049057835160411461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561038c57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103ce86600163ffffffff61082b16565b905060006103e387602163ffffffff61082b16565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b92915050565b60006104d386610876565b60408051600080825260208201909252845192935091905b818110156105bf576000868281518110151561050357fe5b906020019060200201519050610517611422565b5060408051606081018252868152602081018a905290810182905242821161056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612089565b600061057682610889565b9050600061059b828a8781518110151561058c57fe5b906020019060200201516100d3565b90506105ad878263ffffffff61089716565b965050600190930192506104eb915050565b50865160005b818110156107265788516000908a90839081106105de57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561060d5761071e565b6000898281518110151561061d57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106635761065b853263ffffffff61089716565b94505061071e565b6000610675868363ffffffff61096116565b90508015156106b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612049565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806106e357506106e3863263ffffffff61096116565b151561071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120e9565b50505b6001016105c5565b50505050505050505050565b606061074185604001516109d9565b905060008151111561075a5761075a85828686866104c8565b5050505050565b60005481565b60008082511115156107a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120b9565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106107d557fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b60008160200183511015151561086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612099565b50016020015190565b60006104c261088483610e91565b61104d565b60006104c26108848361108d565b8151604051606091849060208082028084018201929101828510156108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612079565b82851115610902576108fb85858361121f565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110151561092f57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b818110156109ce578373ffffffffffffffffffffffffffffffffffffffff16858281518110151561099557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614156109c6576001925050506104c2565b600101610968565b506000949350505050565b606060006109ed838263ffffffff6112e316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610a8057507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610acc57507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610b5657610ad9611447565b8351610aef90859060049063ffffffff61135016565b806020019051610b029190810190611ae3565b604080516001808252818301909252919250816020015b610b21611447565b815260200190600190039081610b1957905050925080836000815181101515610b4657fe5b6020908102909101015250610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610be757507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610c3357507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610c7f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610ccb57507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610d1757507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610d6357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610d98578251610d7e90849060049063ffffffff61135016565b806020019051610d919190810190611a54565b9150610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610e8b57610dea611447565b610df2611447565b8451610e0890869060049063ffffffff61135016565b806020019051610e1b9190810190611b18565b60408051600280825260608201909252929450909250816020015b610e3e611447565b815260200190600190039081610e3657905050935081846000815181101515610e6357fe5b602090810290910101528351819085906001908110610e7e57fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b60208310610fc557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610f88565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256121fb8239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b602083106111ad57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611170565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611249576001816020036101000a0380198351168185511680821786525050506112de565b82821415611256576112de565b828211156112905760208103905080820181840181515b8285101561128857845186526020958601959094019361126d565b9052506112de565b60208103905080820181840183515b818612156112d957825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061129f565b855250505b505050565b600081600401835110151515611325576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120f9565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60608183111561138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612059565b83518211156113c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612069565b8282036040519080825280601f01601f1916602001820160405280156113f4576020820181803883390190505b5090506114156114038261141c565b8461140d8761141c565b01835161121f565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114158235612197565b60006114158251612197565b6000601f8201831361152a57600080fd5b813561153d61153882612130565b612109565b81815260209384019390925082018360005b8381101561157b578135860161156588826116bb565b845250602092830192919091019060010161154f565b5050505092915050565b6000601f8201831361159657600080fd5b81516115a461153882612130565b81815260209384019390925082018360005b8381101561157b57815186016115cc8882611899565b84525060209283019291909101906001016115b6565b6000601f820183136115f357600080fd5b813561160161153882612130565b81815260209384019390925082018360005b8381101561157b57813586016116298882611750565b8452506020928301929190910190600101611613565b6000601f8201831361165057600080fd5b813561165e61153882612130565b9150818183526020840193506020810190508385602084028201111561168357600080fd5b60005b8381101561157b578161169988826116af565b8452506020928301929190910190600101611686565b600061141582356121a2565b6000601f820183136116cc57600080fd5b81356116da61153882612151565b915080825260208301602083018583830111156116f657600080fd5b6117018382846121be565b50505092915050565b6000601f8201831361171b57600080fd5b815161172961153882612151565b9150808252602083016020830185838301111561174557600080fd5b6117018382846121ca565b6000610180828403121561176357600080fd5b61176e610180612109565b9050600061177c8484611501565b825250602061178d84848301611501565b60208301525060406117a184828501611501565b60408301525060606117b584828501611501565b60608301525060806117c9848285016116af565b60808301525060a06117dd848285016116af565b60a08301525060c06117f1848285016116af565b60c08301525060e0611805848285016116af565b60e08301525061010061181a848285016116af565b61010083015250610120611830848285016116af565b6101208301525061014082013567ffffffffffffffff81111561185257600080fd5b61185e848285016116bb565b6101408301525061016082013567ffffffffffffffff81111561188057600080fd5b61188c848285016116bb565b6101608301525092915050565b600061018082840312156118ac57600080fd5b6118b7610180612109565b905060006118c5848461150d565b82525060206118d68484830161150d565b60208301525060406118ea8482850161150d565b60408301525060606118fe8482850161150d565b606083015250608061191284828501611a48565b60808301525060a061192684828501611a48565b60a08301525060c061193a84828501611a48565b60c08301525060e061194e84828501611a48565b60e08301525061010061196384828501611a48565b6101008301525061012061197984828501611a48565b6101208301525061014082015167ffffffffffffffff81111561199b57600080fd5b6119a78482850161170a565b6101408301525061016082015167ffffffffffffffff8111156119c957600080fd5b61188c8482850161170a565b6000606082840312156119e757600080fd5b6119f16060612109565b905060006119ff84846116af565b8252506020611a1084848301611501565b602083015250604082013567ffffffffffffffff811115611a3057600080fd5b611a3c848285016116bb565b60408301525092915050565b600061141582516121a2565b600060208284031215611a6657600080fd5b815167ffffffffffffffff811115611a7d57600080fd5b611a8984828501611585565b949350505050565b60008060408385031215611aa457600080fd5b6000611ab085856116af565b925050602083013567ffffffffffffffff811115611acd57600080fd5b611ad9858286016116bb565b9150509250929050565b600060208284031215611af557600080fd5b815167ffffffffffffffff811115611b0c57600080fd5b611a8984828501611899565b60008060408385031215611b2b57600080fd5b825167ffffffffffffffff811115611b4257600080fd5b611b4e85828601611899565b925050602083015167ffffffffffffffff811115611b6b57600080fd5b611ad985828601611899565b600080600080600060a08688031215611b8f57600080fd5b853567ffffffffffffffff811115611ba657600080fd5b611bb2888289016119d5565b955050602086013567ffffffffffffffff811115611bcf57600080fd5b611bdb888289016115e2565b945050604086013567ffffffffffffffff811115611bf857600080fd5b611c04888289016116bb565b935050606086013567ffffffffffffffff811115611c2157600080fd5b611c2d8882890161163f565b925050608086013567ffffffffffffffff811115611c4a57600080fd5b611c5688828901611519565b9150509295509295909350565b60008060008060808587031215611c7957600080fd5b843567ffffffffffffffff811115611c9057600080fd5b611c9c878288016119d5565b945050602085013567ffffffffffffffff811115611cb957600080fd5b611cc5878288016116bb565b935050604085013567ffffffffffffffff811115611ce257600080fd5b611cee8782880161163f565b925050606085013567ffffffffffffffff811115611d0b57600080fd5b611d1787828801611519565b91505092959194509250565b611d2c81612197565b82525050565b611d2c816121a2565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104c28284611d23565b602081016104c28284611d32565b602080825281016104c281611d3b565b602080825281016104c281611d6b565b602080825281016104c281611d9b565b602080825281016104c281611dcb565b602080825281016104c281611dfb565b602080825281016104c281611e2b565b602080825281016104c281611e5b565b602080825281016104c281611eb1565b602080825281016104c281611ee1565b602080825281016104c281611f37565b602080825281016104c281611f67565b602080825281016104c281611f97565b602080825281016104c281611fc7565b60405181810167ffffffffffffffff8111828210171561212857600080fd5b604052919050565b600067ffffffffffffffff82111561214757600080fd5b5060209081020190565b600067ffffffffffffffff82111561216857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60006104c2826121a5565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b838110156121e55781810151838201526020016121cd565b838111156121f4576000848401525b5050505056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a72305820a7dc4db5ec1936281b9753d70f5cf618cba7a682c53caa572159a5117a653c926c6578706572696d656e74616cf5003730782050726f746f636f6c20547261646520457865637574696f6e20436f6f7264696e61746f72", + "opcodes": "PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0xA0 SWAP1 DUP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0xAD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0xB9 MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0xC8 MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0xE1 MSTORE PUSH1 0x42 PUSH1 0x80 DUP2 SWAP1 MSTORE SWAP1 KECCAK256 PUSH2 0x142 PUSH1 0x40 MSTORE PUSH1 0x27 PUSH1 0xE2 DUP2 DUP2 MSTORE SWAP1 PUSH2 0x23CE PUSH2 0x102 CODECOPY DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP5 ADD MSTORE DUP1 MLOAD DUP1 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP6 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP4 ADD SWAP1 MSTORE DUP2 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH2 0x2259 DUP1 PUSH2 0x175 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x68 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0xF7D8E39 DUP2 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xBE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x80 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x1A91 JUMP JUMPDEST PUSH2 0xD3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA9 PUSH2 0xA4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B77 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA9 PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x732 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x202B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x11A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x125 DUP4 PUSH2 0x767 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x187 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A8 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1EE JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x32C JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x240 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x282 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x297 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4C2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x33A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x490 JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3CE DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E3 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP7 PUSH2 0x876 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5BF JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x503 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x517 PUSH2 0x1422 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x56B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x576 DUP3 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x59B DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x58C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0xD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x5AD DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x4EB SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x726 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x5DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x60D JUMPI PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x61D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x663 JUMPI PUSH2 0x65B DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x675 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x6E3 JUMPI POP PUSH2 0x6E3 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20E9 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5C5 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x741 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x9D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x75A JUMPI PUSH2 0x75A DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4C8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20B9 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x7D5 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x86D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2099 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0xE91 JUMP JUMPDEST PUSH2 0x104D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0x108D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2079 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x902 JUMPI PUSH2 0x8FB DUP6 DUP6 DUP4 PUSH2 0x121F JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x92F JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CE JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x995 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9C6 JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4C2 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x968 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9ED DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x12E3 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xA80 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xACC JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xB56 JUMPI PUSH2 0xAD9 PUSH2 0x1447 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xAEF SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xB02 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xB21 PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xB19 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB46 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xBE7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC33 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC7F JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCCB JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD17 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD63 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xD98 JUMPI DUP3 MLOAD PUSH2 0xD7E SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD91 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1A54 JUMP JUMPDEST SWAP2 POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xE8B JUMPI PUSH2 0xDEA PUSH2 0x1447 JUMP JUMPDEST PUSH2 0xDF2 PUSH2 0x1447 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xE08 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE1B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE3E PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xE36 JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE63 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xE7E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xFC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xF88 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x21FB DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x11AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1170 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1249 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x1256 JUMPI PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1290 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1288 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x126D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x12DE JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x12D9 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x129F JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x1325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20F9 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2059 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x13C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2069 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1415 PUSH2 0x1403 DUP3 PUSH2 0x141C JUMP JUMPDEST DUP5 PUSH2 0x140D DUP8 PUSH2 0x141C JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x121F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x152A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x153D PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST PUSH2 0x2109 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1565 DUP9 DUP3 PUSH2 0x16BB JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x154F JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15A4 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x15CC DUP9 DUP3 PUSH2 0x1899 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x15F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1601 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1629 DUP9 DUP3 PUSH2 0x1750 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1613 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x165E PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 PUSH2 0x1699 DUP9 DUP3 PUSH2 0x16AF JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1686 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x16F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21BE JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x171B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1729 PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21CA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x176E PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x177C DUP5 DUP5 PUSH2 0x1501 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x178D DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x17A1 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x17B5 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x17C9 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x17DD DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x17F1 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1805 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x181A DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1830 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185E DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B7 PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18C5 DUP5 DUP5 PUSH2 0x150D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x18D6 DUP5 DUP5 DUP4 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x18EA DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x18FE DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1912 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x1926 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x193A DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x194E DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1963 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1979 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A7 DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19F1 PUSH1 0x60 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x19FF DUP5 DUP5 PUSH2 0x16AF JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1A10 DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1585 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1AB0 DUP6 DUP6 PUSH2 0x16AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B4E DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1B8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP9 DUP3 DUP10 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BDB DUP9 DUP3 DUP10 ADD PUSH2 0x15E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C04 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C2D DUP9 DUP3 DUP10 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C56 DUP9 DUP3 DUP10 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1C79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C9C DUP8 DUP3 DUP9 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CC5 DUP8 DUP3 DUP9 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CEE DUP8 DUP3 DUP9 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D17 DUP8 DUP3 DUP9 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x2197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D32 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D9B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DCB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DFB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E5B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EB1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EE1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F67 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F97 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1FC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 DUP3 PUSH2 0x21A5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21E5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x21CD JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A72305820A7DC4DB5 0xec NOT CALLDATASIZE 0x28 SHL SWAP8 MSTORE8 0xd7 0xf 0x5c 0xf6 XOR 0xcb 0xa7 0xa6 DUP3 0xc5 EXTCODECOPY 0xaa JUMPI 0x21 MSIZE 0xa5 GT PUSH27 0x653C926C6578706572696D656E74616CF5003730782050726F746F PUSH4 0x6F6C2054 PUSH19 0x61646520457865637574696F6E20436F6F7264 PUSH10 0x6E61746F720000000000 ", + "sourceMap": "1083:148:9:-;;;;;;;;;;;;;;;;;22:32:-1;768:83:14;6:49:-1;;;1073:159:9;;1549:18;768:83:14;1549:18:9;;1083:148;1549:18;;;1083:148;1549:18;;;1533:36;;;;;;;1599:21;;;;;;;;;;;;;;;;1454:214;;;;;;;;;;;;;;;;1583:39;1454:214;;;;1652:4;1454:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1454:214:9;;;;;;1444:225;;;;;-1:-1:-1;1423:246:9;768:83:14;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610068577c010000000000000000000000000000000000000000000000000000000060003504630f7d8e39811461006d57806355fc233c146100965780636c42c828146100ab578063e306f779146100be575b600080fd5b61008061007b366004611a91565b6100d3565b60405161008d919061201d565b60405180910390f35b6100a96100a4366004611b77565b6104c8565b005b6100a96100b9366004611c63565b610732565b6100c6610761565b60405161008d919061202b565b600080825111151561011a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120d9565b60405180910390fd5b600061012583610767565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff821610610187576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b60008160ff16600381111561019857fe5b905060008160038111156101a857fe5b14156101e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120c9565b60018160038111156101ee57fe5b141561032c57835160411461022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561024057fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190048102049050600061028286600163ffffffff61082b16565b9050600061029787602163ffffffff61082b16565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104c295505050505050565b600281600381111561033a57fe5b141561049057835160411461037b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612039565b600084600081518110151561038c57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103ce86600163ffffffff61082b16565b905060006103e387602163ffffffff61082b16565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156102f6573d6000803e3d6000fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120a9565b92915050565b60006104d386610876565b60408051600080825260208201909252845192935091905b818110156105bf576000868281518110151561050357fe5b906020019060200201519050610517611422565b5060408051606081018252868152602081018a905290810182905242821161056b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612089565b600061057682610889565b9050600061059b828a8781518110151561058c57fe5b906020019060200201516100d3565b90506105ad878263ffffffff61089716565b965050600190930192506104eb915050565b50865160005b818110156107265788516000908a90839081106105de57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561060d5761071e565b6000898281518110151561061d57fe5b6020908102909101015160400151905073ffffffffffffffffffffffffffffffffffffffff81163214156106635761065b853263ffffffff61089716565b94505061071e565b6000610675868363ffffffff61096116565b90508015156106b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612049565b60208c015173ffffffffffffffffffffffffffffffffffffffff163214806106e357506106e3863263ffffffff61096116565b151561071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120e9565b50505b6001016105c5565b50505050505050505050565b606061074185604001516109d9565b905060008151111561075a5761075a85828686866104c8565b5050505050565b60005481565b60008082511115156107a5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120b9565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106107d557fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b60008160200183511015151561086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612099565b50016020015190565b60006104c261088483610e91565b61104d565b60006104c26108848361108d565b8151604051606091849060208082028084018201929101828510156108e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612079565b82851115610902576108fb85858361121f565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110151561092f57fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b8151600090815b818110156109ce578373ffffffffffffffffffffffffffffffffffffffff16858281518110151561099557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614156109c6576001925050506104c2565b600101610968565b506000949350505050565b606060006109ed838263ffffffff6112e316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d5000000000000000000000000000000000000000000000000000000001480610a8057507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610acc57507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610b5657610ad9611447565b8351610aef90859060049063ffffffff61135016565b806020019051610b029190810190611ae3565b604080516001808252818301909252919250816020015b610b21611447565b815260200190600190039081610b1957905050925080836000815181101515610b4657fe5b6020908102909101015250610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610be757507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610c3357507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610c7f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610ccb57507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610d1757507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610d6357507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610d98578251610d7e90849060049063ffffffff61135016565b806020019051610d919190810190611a54565b9150610e8b565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610e8b57610dea611447565b610df2611447565b8451610e0890869060049063ffffffff61135016565b806020019051610e1b9190810190611b18565b60408051600280825260608201909252929450909250816020015b610e3e611447565b815260200190600190039081610e3657905050935081846000815181101515610e6357fe5b602090810290910101528351819085906001908110610e7e57fe5b6020908102909101015250505b50919050565b604080517f5a65726f45785472616e73616374696f6e2800000000000000000000000000006020808301919091527f75696e743235362073616c742c0000000000000000000000000000000000000060328301527f61646472657373207369676e6572416464726573732c00000000000000000000603f8301527f627974657320646174610000000000000000000000000000000000000000000060558301527f2900000000000000000000000000000000000000000000000000000000000000605f8301528251808303840181526060909201808452825192820192909220928401518051600094938593909182918401908083835b60208310610fc557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610f88565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a8201519883529082019990995273ffffffffffffffffffffffffffffffffffffffff90961691860191909152505050506060810192909252506080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b6040517f544543417070726f76616c280000000000000000000000000000000000000000602082019081527f62797465733332207472616e73616374696f6e486173682c0000000000000000602c8301527f6279746573207472616e73616374696f6e5369676e61747572652c00000000006044830152600091829190605f0160256121fb8239602501807f29000000000000000000000000000000000000000000000000000000000000008152506001019050604051602081830303815290604052805190602001209050600083602001516040518082805190602001908083835b602083106111ad57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611170565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199092169116179052604080519290940182900382208a519a85015198835290820199909952918201979097526060810194909452505060809091209392505050565b6020811015611249576001816020036101000a0380198351168185511680821786525050506112de565b82821415611256576112de565b828211156112905760208103905080820181840181515b8285101561128857845186526020958601959094019361126d565b9052506112de565b60208103905080820181840183515b818612156112d957825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0928301929091019061129f565b855250505b505050565b600081600401835110151515611325576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610111906120f9565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b60608183111561138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612059565b83518211156113c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011190612069565b8282036040519080825280601f01601f1916602001820160405280156113f4576020820181803883390190505b5090506114156114038261141c565b8461140d8761141c565b01835161121f565b9392505050565b60200190565b6060604051908101604052806000801916815260200160608152602001600081525090565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006114158235612197565b60006114158251612197565b6000601f8201831361152a57600080fd5b813561153d61153882612130565b612109565b81815260209384019390925082018360005b8381101561157b578135860161156588826116bb565b845250602092830192919091019060010161154f565b5050505092915050565b6000601f8201831361159657600080fd5b81516115a461153882612130565b81815260209384019390925082018360005b8381101561157b57815186016115cc8882611899565b84525060209283019291909101906001016115b6565b6000601f820183136115f357600080fd5b813561160161153882612130565b81815260209384019390925082018360005b8381101561157b57813586016116298882611750565b8452506020928301929190910190600101611613565b6000601f8201831361165057600080fd5b813561165e61153882612130565b9150818183526020840193506020810190508385602084028201111561168357600080fd5b60005b8381101561157b578161169988826116af565b8452506020928301929190910190600101611686565b600061141582356121a2565b6000601f820183136116cc57600080fd5b81356116da61153882612151565b915080825260208301602083018583830111156116f657600080fd5b6117018382846121be565b50505092915050565b6000601f8201831361171b57600080fd5b815161172961153882612151565b9150808252602083016020830185838301111561174557600080fd5b6117018382846121ca565b6000610180828403121561176357600080fd5b61176e610180612109565b9050600061177c8484611501565b825250602061178d84848301611501565b60208301525060406117a184828501611501565b60408301525060606117b584828501611501565b60608301525060806117c9848285016116af565b60808301525060a06117dd848285016116af565b60a08301525060c06117f1848285016116af565b60c08301525060e0611805848285016116af565b60e08301525061010061181a848285016116af565b61010083015250610120611830848285016116af565b6101208301525061014082013567ffffffffffffffff81111561185257600080fd5b61185e848285016116bb565b6101408301525061016082013567ffffffffffffffff81111561188057600080fd5b61188c848285016116bb565b6101608301525092915050565b600061018082840312156118ac57600080fd5b6118b7610180612109565b905060006118c5848461150d565b82525060206118d68484830161150d565b60208301525060406118ea8482850161150d565b60408301525060606118fe8482850161150d565b606083015250608061191284828501611a48565b60808301525060a061192684828501611a48565b60a08301525060c061193a84828501611a48565b60c08301525060e061194e84828501611a48565b60e08301525061010061196384828501611a48565b6101008301525061012061197984828501611a48565b6101208301525061014082015167ffffffffffffffff81111561199b57600080fd5b6119a78482850161170a565b6101408301525061016082015167ffffffffffffffff8111156119c957600080fd5b61188c8482850161170a565b6000606082840312156119e757600080fd5b6119f16060612109565b905060006119ff84846116af565b8252506020611a1084848301611501565b602083015250604082013567ffffffffffffffff811115611a3057600080fd5b611a3c848285016116bb565b60408301525092915050565b600061141582516121a2565b600060208284031215611a6657600080fd5b815167ffffffffffffffff811115611a7d57600080fd5b611a8984828501611585565b949350505050565b60008060408385031215611aa457600080fd5b6000611ab085856116af565b925050602083013567ffffffffffffffff811115611acd57600080fd5b611ad9858286016116bb565b9150509250929050565b600060208284031215611af557600080fd5b815167ffffffffffffffff811115611b0c57600080fd5b611a8984828501611899565b60008060408385031215611b2b57600080fd5b825167ffffffffffffffff811115611b4257600080fd5b611b4e85828601611899565b925050602083015167ffffffffffffffff811115611b6b57600080fd5b611ad985828601611899565b600080600080600060a08688031215611b8f57600080fd5b853567ffffffffffffffff811115611ba657600080fd5b611bb2888289016119d5565b955050602086013567ffffffffffffffff811115611bcf57600080fd5b611bdb888289016115e2565b945050604086013567ffffffffffffffff811115611bf857600080fd5b611c04888289016116bb565b935050606086013567ffffffffffffffff811115611c2157600080fd5b611c2d8882890161163f565b925050608086013567ffffffffffffffff811115611c4a57600080fd5b611c5688828901611519565b9150509295509295909350565b60008060008060808587031215611c7957600080fd5b843567ffffffffffffffff811115611c9057600080fd5b611c9c878288016119d5565b945050602085013567ffffffffffffffff811115611cb957600080fd5b611cc5878288016116bb565b935050604085013567ffffffffffffffff811115611ce257600080fd5b611cee8782880161163f565b925050606085013567ffffffffffffffff811115611d0b57600080fd5b611d1787828801611519565b91505092959194509250565b611d2c81612197565b82525050565b611d2c816121a2565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b600e81527f494e56414c49445f53454e444552000000000000000000000000000000000000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104c28284611d23565b602081016104c28284611d32565b602080825281016104c281611d3b565b602080825281016104c281611d6b565b602080825281016104c281611d9b565b602080825281016104c281611dcb565b602080825281016104c281611dfb565b602080825281016104c281611e2b565b602080825281016104c281611e5b565b602080825281016104c281611eb1565b602080825281016104c281611ee1565b602080825281016104c281611f37565b602080825281016104c281611f67565b602080825281016104c281611f97565b602080825281016104c281611fc7565b60405181810167ffffffffffffffff8111828210171561212857600080fd5b604052919050565b600067ffffffffffffffff82111561214757600080fd5b5060209081020190565b600067ffffffffffffffff82111561216857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60006104c2826121a5565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b838110156121e55781810151838201526020016121cd565b838111156121f4576000848401525b5050505056fe75696e7432353620617070726f76616c45787069726174696f6e54696d655365636f6e6473a265627a7a72305820a7dc4db5ec1936281b9753d70f5cf618cba7a682c53caa572159a5117a653c926c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x68 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0xF7D8E39 DUP2 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0x55FC233C EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0x6C42C828 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xBE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x80 PUSH2 0x7B CALLDATASIZE PUSH1 0x4 PUSH2 0x1A91 JUMP JUMPDEST PUSH2 0xD3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA9 PUSH2 0xA4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B77 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA9 PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x732 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x761 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x202B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x11A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x125 DUP4 PUSH2 0x767 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x187 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x198 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1A8 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1E0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20C9 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1EE JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x32C JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x22F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x240 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x282 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x297 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4C2 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x33A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x490 JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x37B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x38C JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3CE DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E3 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x82B AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20A9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 DUP7 PUSH2 0x876 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5BF JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x503 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x517 PUSH2 0x1422 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x56B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2089 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x576 DUP3 PUSH2 0x889 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x59B DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x58C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0xD3 JUMP JUMPDEST SWAP1 POP PUSH2 0x5AD DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x4EB SWAP2 POP POP JUMP JUMPDEST POP DUP7 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x726 JUMPI DUP9 MLOAD PUSH1 0x0 SWAP1 DUP11 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x5DE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x60D JUMPI PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 DUP10 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x61D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ORIGIN EQ ISZERO PUSH2 0x663 JUMPI PUSH2 0x65B DUP6 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x897 AND JUMP JUMPDEST SWAP5 POP POP PUSH2 0x71E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x675 DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP13 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ORIGIN EQ DUP1 PUSH2 0x6E3 JUMPI POP PUSH2 0x6E3 DUP7 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0x961 AND JUMP JUMPDEST ISZERO ISZERO PUSH2 0x71B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20E9 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x5C5 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x741 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x9D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x75A JUMPI PUSH2 0x75A DUP6 DUP3 DUP7 DUP7 DUP7 PUSH2 0x4C8 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20B9 JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x7D5 JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x86D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2099 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0xE91 JUMP JUMPDEST PUSH2 0x104D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 PUSH2 0x884 DUP4 PUSH2 0x108D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2079 JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0x902 JUMPI PUSH2 0x8FB DUP6 DUP6 DUP4 PUSH2 0x121F JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x92F JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SWAP1 DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x9CE JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x995 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x9C6 JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x4C2 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x968 JUMP JUMPDEST POP PUSH1 0x0 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9ED DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x12E3 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xA80 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xACC JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xB56 JUMPI PUSH2 0xAD9 PUSH2 0x1447 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xAEF SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xB02 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1AE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xB21 PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xB19 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xB46 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xBE7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC33 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC7F JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCCB JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD17 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xD63 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xD98 JUMPI DUP3 MLOAD PUSH2 0xD7E SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD91 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1A54 JUMP JUMPDEST SWAP2 POP PUSH2 0xE8B JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xE8B JUMPI PUSH2 0xDEA PUSH2 0x1447 JUMP JUMPDEST PUSH2 0xDF2 PUSH2 0x1447 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xE08 SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1350 AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xE1B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1B18 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE3E PUSH2 0x1447 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xE36 JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xE63 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xE7E JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A65726F45785472616E73616374696F6E280000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x75696E743235362073616C742C00000000000000000000000000000000000000 PUSH1 0x32 DUP4 ADD MSTORE PUSH32 0x61646472657373207369676E6572416464726573732C00000000000000000000 PUSH1 0x3F DUP4 ADD MSTORE PUSH32 0x6279746573206461746100000000000000000000000000000000000000000000 PUSH1 0x55 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x5F DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB DUP5 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD DUP1 DUP5 MSTORE DUP3 MLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 KECCAK256 SWAP3 DUP5 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP5 SWAP4 DUP6 SWAP4 SWAP1 SWAP2 DUP3 SWAP2 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xFC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xF88 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP3 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP7 AND SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP POP PUSH1 0x60 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x544543417070726F76616C280000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH32 0x62797465733332207472616E73616374696F6E486173682C0000000000000000 PUSH1 0x2C DUP4 ADD MSTORE PUSH32 0x6279746573207472616E73616374696F6E5369676E61747572652C0000000000 PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 PUSH1 0x5F ADD PUSH1 0x25 PUSH2 0x21FB DUP3 CODECOPY PUSH1 0x25 ADD DUP1 PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x11AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1170 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB DUP3 KECCAK256 DUP11 MLOAD SWAP11 DUP6 ADD MLOAD SWAP9 DUP4 MSTORE SWAP1 DUP3 ADD SWAP10 SWAP1 SWAP10 MSTORE SWAP2 DUP3 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE POP POP PUSH1 0x80 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1249 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x1256 JUMPI PUSH2 0x12DE JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x1290 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x1288 JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x126D JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x12DE JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x12D9 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x129F JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x1325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x20F9 JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2059 JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0x13C7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111 SWAP1 PUSH2 0x2069 JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1415 PUSH2 0x1403 DUP3 PUSH2 0x141C JUMP JUMPDEST DUP5 PUSH2 0x140D DUP8 PUSH2 0x141C JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x121F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x2197 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x152A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x153D PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST PUSH2 0x2109 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1565 DUP9 DUP3 PUSH2 0x16BB JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x154F JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x15A4 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x15CC DUP9 DUP3 PUSH2 0x1899 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x15B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x15F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1601 PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1629 DUP9 DUP3 PUSH2 0x1750 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1613 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x165E PUSH2 0x1538 DUP3 PUSH2 0x2130 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x157B JUMPI DUP2 PUSH2 0x1699 DUP9 DUP3 PUSH2 0x16AF JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1686 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 CALLDATALOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x16CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16DA PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x16F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21BE JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x171B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1729 PUSH2 0x1538 DUP3 PUSH2 0x2151 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1701 DUP4 DUP3 DUP5 PUSH2 0x21CA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x176E PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x177C DUP5 DUP5 PUSH2 0x1501 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x178D DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x17A1 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x17B5 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x17C9 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x17DD DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x17F1 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1805 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x181A DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1830 DUP5 DUP3 DUP6 ADD PUSH2 0x16AF JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1852 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185E DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18B7 PUSH2 0x180 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x18C5 DUP5 DUP5 PUSH2 0x150D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x18D6 DUP5 DUP5 DUP4 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x18EA DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x18FE DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1912 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x1926 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x193A DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x194E DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1963 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1979 DUP5 DUP3 DUP6 ADD PUSH2 0x1A48 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A7 DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188C DUP5 DUP3 DUP6 ADD PUSH2 0x170A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19F1 PUSH1 0x60 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x19FF DUP5 DUP5 PUSH2 0x16AF JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1A10 DUP5 DUP5 DUP4 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3C DUP5 DUP3 DUP6 ADD PUSH2 0x16BB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1415 DUP3 MLOAD PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1585 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1AB0 DUP6 DUP6 PUSH2 0x16AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A89 DUP5 DUP3 DUP6 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B4E DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AD9 DUP6 DUP3 DUP7 ADD PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1B8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BB2 DUP9 DUP3 DUP10 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1BDB DUP9 DUP3 DUP10 ADD PUSH2 0x15E2 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C04 DUP9 DUP3 DUP10 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C2D DUP9 DUP3 DUP10 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C56 DUP9 DUP3 DUP10 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1C79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C9C DUP8 DUP3 DUP9 ADD PUSH2 0x19D5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CC5 DUP8 DUP3 DUP9 ADD PUSH2 0x16BB JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CEE DUP8 DUP3 DUP9 ADD PUSH2 0x163F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D17 DUP8 DUP3 DUP9 ADD PUSH2 0x1519 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x2197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D2C DUP2 PUSH2 0x21A2 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F53454E444552000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D23 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4C2 DUP3 DUP5 PUSH2 0x1D32 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1D9B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DCB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1DFB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1E5B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EB1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1EE1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F37 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F67 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1F97 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4C2 DUP2 PUSH2 0x1FC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C2 DUP3 PUSH2 0x21A5 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x21E5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x21CD JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x21F4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID PUSH22 0x696E7432353620617070726F76616C45787069726174 PUSH10 0x6F6E54696D655365636F PUSH15 0x6473A265627A7A72305820A7DC4DB5 0xec NOT CALLDATASIZE 0x28 SHL SWAP8 MSTORE8 0xd7 0xf 0x5c 0xf6 XOR 0xcb 0xa7 0xa6 DUP3 0xc5 EXTCODECOPY 0xaa JUMPI 0x21 MSIZE 0xa5 GT PUSH27 0x653C926C6578706572696D656E74616CF500370000000000000000 ", + "sourceMap": "768:83:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;768:83:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3439:2912:1;;;;;;;;;:::i;:::-;;1981:853;;;;;;;;;:::i;1339:33:9:-;;;:::i;:::-;;;;;;;;988:2549:0;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:0;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:0;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:0;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:0;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:0;;;;;;-1:-1:-1;2510:20:0;;-1:-1:-1;;;;;;2510:20:0;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:0;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:0;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:0;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:0;3499:31;;;;;;;;;;;988:2549;;;;;:::o;3439:2912:1:-;3813:23;3839:31;3858:11;3839:18;:31::i;:::-;3973:16;;;3987:1;3973:16;;;;;;;;;4027:25;;3813:57;;-1:-1:-1;3973:16:1;4027:25;4062:1090;4086:16;4082:1;:20;4062:1090;;;4162:44;4209:29;4239:1;4209:32;;;;;;;;;;;;;;;;;;4162:79;;4255:27;;:::i;:::-;-1:-1:-1;4285:222:1;;;;;;;;;;;;;;;;;;;;;;;4695:15;4656:54;;4569:191;;;;;;;;;;;;;;4839:20;4862:28;4881:8;4862:18;:28::i;:::-;4839:51;;4904:29;4936:53;4953:12;4967:18;4986:1;4967:21;;;;;;;;;;;;;;;;;;4936:16;:53::i;:::-;4904:85;-1:-1:-1;5088:53:1;:23;4904:85;5088:53;:30;:53;:::i;:::-;5062:79;-1:-1:-1;;4104:3:1;;;;;-1:-1:-1;4062:1090:1;;-1:-1:-1;;4062:1090:1;;-1:-1:-1;5193:13:1;;5170:20;5216:1129;5240:12;5236:1;:16;5216:1129;;;5351:9;;5386:1;;5351:6;;5358:1;;5351:9;;;;;;;;;;;;;;:23;;;:37;;;5347:84;;;5408:8;;5347:84;5537:23;5563:6;5570:1;5563:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;5610:28:1;;;5629:9;5610:28;5606:160;;;5684:41;:23;5715:9;5684:41;:30;:41;:::i;:::-;5658:67;;5743:8;;;5606:160;5857:20;5880:49;:23;5913:15;5880:49;:32;:49;:::i;:::-;5857:72;;5968:15;5943:100;;;;;;;;;;;;;;;;6201:25;;;;:38;;6230:9;6201:38;;:85;;-1:-1:-1;6243:43:1;:23;6276:9;6243:43;:32;:43;:::i;:::-;6176:158;;;;;;;;;;;;;;;;5216:1129;;;5254:3;;5216:1129;;;;3439:2912;;;;;;;;;:::o;1981:853::-;2350:30;2383:38;2404:11;:16;;;2383:20;:38::i;:::-;2350:71;;2508:1;2492:6;:13;:17;2488:340;;;2593:224;2647:11;2676:6;2700:20;2738:29;2785:18;2593:36;:224::i;:::-;1981:853;;;;;:::o;1339:33:9:-;;;;:::o;8315:448:19:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:19;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:19;13631:2;13729:13;13723:20;;13292:490::o;1514:406:11:-;1627:23;1828:53;1846:34;1868:11;1846:21;:34::i;:::-;1828:17;:53::i;1697:235:10:-;1801:20;1852:44;1870:25;1886:8;1870:15;:25::i;1089:2103:18:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:18;;-1:-1:-1;;;;;1089:2103:18;;;;:::o;3431:342::-;3580:19;;3543:4;;;3609:136;3633:6;3629:1;:10;3609:136;;;3683:6;3664:25;;:12;3677:1;3664:15;;;;;;;;;;;;;;;;;;:25;;;3660:75;;;3716:4;3709:11;;;;;;3660:75;3641:3;;3609:136;;;-1:-1:-1;3761:5:18;;3431:342;-1:-1:-1;;;;3431:342:18:o;6563:1760:1:-;6659:30;6705:15;6723:18;:4;6705:15;6723:18;:15;:18;:::i;:::-;6705:36;-1:-1:-1;6768:31:1;;;6780:19;6768:31;;:87;;-1:-1:-1;6815:40:1;;;6827:28;6815:40;6768:87;:142;;;-1:-1:-1;6871:39:1;;;6883:27;6871:39;6768:142;6751:1543;;;6971:27;;:::i;:::-;7044:11;;7030:26;;7044:4;;7041:1;;7030:26;:10;:26;:::i;:::-;7002:102;;;;;;;;;;;;;;7127:23;;;7148:1;7127:23;;;;;;;;;6970:134;;-1:-1:-1;7127:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7118:32;;7176:5;7164:6;7171:1;7164:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6751:1543:1;;;7215:38;;;7227:26;7215:38;;:101;;-1:-1:-1;7269:47:1;;;7281:35;7269:47;7215:101;:163;;;-1:-1:-1;7332:46:1;;;7344:34;7332:46;7215:163;:217;;;-1:-1:-1;7394:38:1;;;7406:26;7394:38;7215:217;:280;;;-1:-1:-1;7448:47:1;;;7460:35;7448:47;7215:280;:335;;;-1:-1:-1;7511:39:1;;;7523:27;7511:39;7215:335;:399;;;-1:-1:-1;7566:48:1;;;7578:36;7566:48;7215:399;7198:1096;;;7763:11;;7749:26;;7763:4;;7760:1;;7749:26;:10;:26;:::i;:::-;7721:104;;;;;;;;;;;;;;7710:115;;7198:1096;;;7846:33;;;7858:21;7846:33;7842:452;;;7940:31;;:::i;:::-;7973:32;;:::i;:::-;8051:11;;8037:26;;8051:4;;8048:1;;8037:26;:10;:26;:::i;:::-;8009:118;;;;;;;;;;;;;;8189:23;;;8210:1;8189:23;;;;;;;;;7939:188;;-1:-1:-1;7939:188:1;;-1:-1:-1;8189:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8180:32;;8238:9;8226:6;8233:1;8226:9;;;;;;;;;;;;;;;;;;:21;8261:9;;8273:10;;8261:6;;8268:1;;8261:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7842:452:1;-1:-1:-1;6563:1760:1;;;:::o;2167:1395:11:-;823:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;823:146:11;;;;;;;813:157;;;;;;;;;2410:16;;;;2400:27;;2283:14;;813:157;2283:14;;823:146;;;;2400:27;;;;823:146;2400:27;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2400:27:11;;;;;;;;;;;;2525:16;;2575:25;;;;2999:26;;;3125:15;;;3118:29;;;;3270:42;3251:62;;;3234:15;;;3227:87;;;;-1:-1:-1;;;;3364:2:11;3352:15;;3345:33;;;;-1:-1:-1;3519:3:11;3501:22;;;2167:1395::o;1872:924:9:-;1966:14;2023:18;2335:2;2329:9;2367:66;2352:82;;2484:1;2472:14;;2465:40;;;;2602:2;2590:15;;2583:35;;;;2754:2;2736:21;;;1872:924::o;2248:1357:10:-;810:183;;;;;;;;;;;;;;;;;;;2349:14;;;;810:183;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;810:183:10;;;800:194;;;;;;2379:52;;2441:32;2486:8;:29;;;2476:40;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;246:30;;311:9;;295:26;;;340:21;;377:20;365:33;;2476:40:10;;;;;;;;;;;;2625:24;;2699:38;;;;3136:26;;;3229:15;;;3222:40;;;;3316:15;;;3309:49;;;;3424:2;3412:15;;3405:54;;;;-1:-1:-1;;3562:3:10;3544:22;;;;2248:1357;-1:-1:-1;;;2248:1357:10:o;1808:4337:19:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:19;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:19;1808:4337;;;:::o;15595:687::-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:19;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:19;87:34:-1;135:17;;-1:-1;6890:20:19;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;768:83:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;;728:14;357:611;;;;;;;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1457;;;;;;12605:3;12593:9;12584:7;12580:23;12576:33;12573:2;;;12622:1;12619;12612:12;12573:2;12657:31;;12708:18;12697:30;;12694:2;;;12740:1;12737;12730:12;12694:2;12760:87;12839:7;12830:6;12819:9;12815:22;12760:87;;;12750:97;;12636:217;12912:2;12901:9;12897:18;12884:32;12936:18;12928:6;12925:30;12922:2;;;12968:1;12965;12958:12;12922:2;12988:97;13077:7;13068:6;13057:9;13053:22;12988:97;;;12978:107;;12863:228;13150:2;13139:9;13135:18;13122:32;13174:18;13166:6;13163:30;13160:2;;;13206:1;13203;13196:12;13160:2;13226:62;13280:7;13271:6;13260:9;13256:22;13226:62;;;13216:72;;13101:193;13353:2;13342:9;13338:18;13325:32;13377:18;13369:6;13366:30;13363:2;;;13409:1;13406;13399:12;13363:2;13429:78;13499:7;13490:6;13479:9;13475:22;13429:78;;;13419:88;;13304:209;13572:3;13561:9;13557:19;13544:33;13597:18;13589:6;13586:30;13583:2;;;13629:1;13626;13619:12;13583:2;13649:83;13724:7;13715:6;13704:9;13700:22;13649:83;;;13639:93;;13523:215;12567:1181;;;;;;;;;13755:1157;;;;;14008:3;13996:9;13987:7;13983:23;13979:33;13976:2;;;14025:1;14022;14015:12;13976:2;14060:31;;14111:18;14100:30;;14097:2;;;14143:1;14140;14133:12;14097:2;14163:87;14242:7;14233:6;14222:9;14218:22;14163:87;;;14153:97;;14039:217;14315:2;14304:9;14300:18;14287:32;14339:18;14331:6;14328:30;14325:2;;;14371:1;14368;14361:12;14325:2;14391:62;14445:7;14436:6;14425:9;14421:22;14391:62;;;14381:72;;14266:193;14518:2;14507:9;14503:18;14490:32;14542:18;14534:6;14531:30;14528:2;;;14574:1;14571;14564:12;14528:2;14594:78;14664:7;14655:6;14644:9;14640:22;14594:78;;;14584:88;;14469:209;14737:2;14726:9;14722:18;14709:32;14761:18;14753:6;14750:30;14747:2;;;14793:1;14790;14783:12;14747:2;14813:83;14888:7;14879:6;14868:9;14864:22;14813:83;;;14803:93;;14688:214;13970:942;;;;;;;;14919:120;15002:31;15027:5;15002:31;;;14997:3;14990:44;14984:55;;;15046:120;15129:31;15154:5;15129:31;;15174:306;15339:2;15327:15;;15376:66;15371:2;15362:12;;15355:88;15471:2;15462:12;;15320:160;15489:306;15654:2;15642:15;;15691:66;15686:2;15677:12;;15670:88;15786:2;15777:12;;15635:160;15804:306;15969:2;15957:15;;16006:66;16001:2;15992:12;;15985:88;16101:2;16092:12;;15950:160;16119:306;16284:2;16272:15;;16321:66;16316:2;16307:12;;16300:88;16416:2;16407:12;;16265:160;16434:306;16599:2;16587:15;;16636:66;16631:2;16622:12;;16615:88;16731:2;16722:12;;16580:160;16749:306;16914:2;16902:15;;16951:66;16946:2;16937:12;;16930:88;17046:2;17037:12;;16895:160;17064:407;17229:2;17217:15;;17266:66;17261:2;17252:12;;17245:88;17367:66;17362:2;17353:12;;17346:88;17462:2;17453:12;;17210:261;17480:306;17645:2;17633:15;;17682:66;17677:2;17668:12;;17661:88;17777:2;17768:12;;17626:160;17795:407;17960:2;17948:15;;17997:66;17992:2;17983:12;;17976:88;18098:66;18093:2;18084:12;;18077:88;18193:2;18184:12;;17941:261;18211:306;18376:2;18364:15;;18413:66;18408:2;18399:12;;18392:88;18508:2;18499:12;;18357:160;18526:306;18691:2;18679:15;;18728:66;18723:2;18714:12;;18707:88;18823:2;18814:12;;18672:160;18841:306;19006:2;18994:15;;19043:66;19038:2;19029:12;;19022:88;19138:2;19129:12;;18987:160;19156:407;19321:2;19309:15;;19358:66;19353:2;19344:12;;19337:88;19459:66;19454:2;19445:12;;19438:88;19554:2;19545:12;;19302:261;19571:213;19689:2;19674:18;;19703:71;19678:9;19747:6;19703:71;;19791:213;19909:2;19894:18;;19923:71;19898:9;19967:6;19923:71;;20011:407;20202:2;20216:47;;;20187:18;;20277:131;20187:18;20277:131;;20425:407;20616:2;20630:47;;;20601:18;;20691:131;20601:18;20691:131;;20839:407;21030:2;21044:47;;;21015:18;;21105:131;21015:18;21105:131;;21253:407;21444:2;21458:47;;;21429:18;;21519:131;21429:18;21519:131;;21667:407;21858:2;21872:47;;;21843:18;;21933:131;21843:18;21933:131;;22081:407;22272:2;22286:47;;;22257:18;;22347:131;22257:18;22347:131;;22495:407;22686:2;22700:47;;;22671:18;;22761:131;22671:18;22761:131;;22909:407;23100:2;23114:47;;;23085:18;;23175:131;23085:18;23175:131;;23323:407;23514:2;23528:47;;;23499:18;;23589:131;23499:18;23589:131;;23737:407;23928:2;23942:47;;;23913:18;;24003:131;23913:18;24003:131;;24151:407;24342:2;24356:47;;;24327:18;;24417:131;24327:18;24417:131;;24565:407;24756:2;24770:47;;;24741:18;;24831:131;24741:18;24831:131;;24979:407;25170:2;25184:47;;;25155:18;;25245:131;25155:18;25245:131;;25393:256;25455:2;25449:9;25481:17;;;25556:18;25541:34;;25577:22;;;25538:62;25535:2;;;25613:1;25610;25603:12;25535:2;25629;25622:22;25433:216;;-1:-1;25433:216;25656:263;;25820:18;25812:6;25809:30;25806:2;;;25852:1;25849;25842:12;25806:2;-1:-1;25881:4;25869:17;;;25899:15;;25743:176;26755:254;;26894:18;26886:6;26883:30;26880:2;;;26926:1;26923;26916:12;26880:2;-1:-1;26999:4;26970;26947:17;;;;26966:9;26943:33;26989:15;;26817:192;27281:105;;27350:31;27375:5;27350:31;;27393:79;27462:5;27445:27;27479:128;27559:42;27548:54;;27531:76;27899:145;27980:6;27975:3;27970;27957:30;-1:-1;28036:1;28018:16;;28011:27;27950:94;28053:268;28118:1;28125:101;28139:6;28136:1;28133:13;28125:101;;;28206:11;;;28200:18;28187:11;;;28180:39;28161:2;28154:10;28125:101;;;28241:6;28238:1;28235:13;28232:2;;;28306:1;28297:6;28292:3;28288:16;28281:27;28232:2;28102:219;;;;" + } + } + }, + "sources": { + "test/TestMixins.sol": { + "id": 14 + }, + "src/MixinSignatureValidator.sol": { + "id": 0 + }, + "@0x/contracts-utils/contracts/src/LibBytes.sol": { + "id": 19 + }, + "src/mixins/MSignatureValidator.sol": { + "id": 12 + }, + "src/interfaces/ISignatureValidator.sol": { + "id": 4 + }, + "src/MixinTECApprovalVerifier.sol": { + "id": 1 + }, + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { + "id": 16 + }, + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { + "id": 17 + }, + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { + "id": 15 + }, + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { + "id": 18 + }, + "src/libs/LibTECApproval.sol": { + "id": 10 + }, + "src/libs/LibEIP712Domain.sol": { + "id": 9 + }, + "src/libs/LibZeroExTransaction.sol": { + "id": 11 + }, + "src/mixins/MTECApprovalVerifier.sol": { + "id": 13 + }, + "src/interfaces/ITECApprovalVerifier.sol": { + "id": 5 + } + }, + "sourceCodes": { + "test/TestMixins.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../src/MixinSignatureValidator.sol\";\nimport \"../src/MixinTECApprovalVerifier.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract TestMixins is\n MixinSignatureValidator,\n MixinTECApprovalVerifier\n{}\n", + "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", + "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", + "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", + "src/MixinTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibTECApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MTECApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinTECApprovalVerifier is\n LibExchangeSelectors,\n LibTECApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MTECApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i < signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n TECApproval memory approval = TECApproval({\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getTECApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i < ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n address approverAddress = orders[i].feeRecipientAddress;\n if (approverAddress == tx.origin) {\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n\n // The Ethereum transaction signer must be the 0x transaction signer or an approver of the 0x transaction\n require(\n transaction.signerAddress == tx.origin || approvalSignerAddresses.contains(tx.origin),\n \"INVALID_SENDER\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return true;\n }\n }\n return false;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool, uint256)\n {\n uint256 length = addressArray.length;\n for (uint256 i = 0; i < length; i++) {\n if (addressArray[i] == target) {\n return (true, i);\n }\n }\n return (false, 0);\n }\n}\n", + "src/libs/LibTECApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibTECApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 TEC approval message\n bytes32 constant internal EIP712_TEC_APPROVAL_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"TECApproval(\",\n \"bytes32 transactionHash,\",\n \"bytes transactionSignature,\",\n \"uint256 approvalExpirationTimeSeconds\",\n \")\"\n ));\n\n struct TECApproval {\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage using the domain separator of this contract.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with the domain separator of this contract.\n function getTECApprovalHash(TECApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashTECApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the TEC approval mesasage with no domain separator.\n /// @param approval TEC approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the TEC approval message with no domain separator.\n function hashTECApproval(TECApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_TEC_APPROVAL_SCHEMA_HASH;\n bytes32 transactionSignatureHash = keccak256(approval.transactionSignature);\n // TODO(abandeali1): optimize by loading from memory in assembly\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_TEC_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), transactionHash) // transactionHash\n mstore(add(memPtr, 64), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 96), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Trade Execution Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"ZeroExTransaction(\",\n \"uint256 salt,\",\n \"address signerAddress,\",\n \"bytes data\",\n \")\"\n ));\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes32 dataHash = keccak256(transaction.data);\n // TODO(abandeali1): optimize by loading from memory in assembly\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/mixins/MTECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ITECApprovalVerifier.sol\";\n\n\ncontract MTECApprovalVerifier is\n ITECApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", + "src/interfaces/ITECApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ITECApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidTECApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n" + }, + "sourceTreeHashHex": "0x80e5c5d9f07cb233e9bb5306b6e8537da3b45a523553bdd1d1a1b2209a63c30c", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "remappings": [ + "@0x/contracts-utils=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/leonidlogvinov/0x/1m/contracts/tec/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} diff --git a/contracts/tec/generated-wrappers/tec.ts b/contracts/tec/generated-wrappers/tec.ts index 86d0fa40d5..f16930ddfd 100644 --- a/contracts/tec/generated-wrappers/tec.ts +++ b/contracts/tec/generated-wrappers/tec.ts @@ -2,7 +2,18 @@ // tslint:disable:no-unused-variable // tslint:disable:no-unbound-method import { BaseContract } from '@0x/base-contract'; -import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; +import { + BlockParam, + BlockParamLiteral, + CallData, + ContractAbi, + ContractArtifact, + DecodedLogArgs, + MethodAbi, + TxData, + TxDataPayable, + SupportedProvider, +} from 'ethereum-types'; import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; @@ -10,7 +21,6 @@ import * as ethers from 'ethers'; import * as _ from 'lodash'; // tslint:enable:no-unused-variable - /* istanbul ignore next */ // tslint:disable:no-parameter-reassignment // tslint:disable-next-line:class-name @@ -21,12 +31,9 @@ export class TECContract extends BaseContract { signature: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, - signature - ]); + ): Promise { + const self = (this as any) as TECContract; + const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, signature]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -39,30 +46,39 @@ export class TECContract extends BaseContract { BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getSignerAddress(bytes32,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, }; public assertValidTransactionOrdersApproval = { async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>, + transaction: { salt: BigNumber; signerAddress: string; data: string }, + orders: Array<{ + makerAddress: string; + takerAddress: string; + feeRecipientAddress: string; + senderAddress: string; + makerAssetAmount: BigNumber; + takerAssetAmount: BigNumber; + makerFee: BigNumber; + takerFee: BigNumber; + expirationTimeSeconds: BigNumber; + salt: BigNumber; + makerAssetData: string; + takerAssetData: string; + }>, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])', [transaction, - orders, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); + ): Promise { + const self = (this as any) as TECContract; + const encodedData = self._strictEncodeArguments( + 'assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])', + [transaction, orders, transactionSignature, approvalExpirationTimeSeconds, approvalSignatures], + ); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -73,30 +89,29 @@ export class TECContract extends BaseContract { ); const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])'); + const abiEncoder = self._lookupAbiEncoder( + 'assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])', + ); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, }; public assertValidTECApprovals = { async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, + transaction: { salt: BigNumber; signerAddress: string; data: string }, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); + ): Promise { + const self = (this as any) as TECContract; + const encodedData = self._strictEncodeArguments( + 'assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])', + [transaction, transactionSignature, approvalExpirationTimeSeconds, approvalSignatures], + ); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -107,21 +122,18 @@ export class TECContract extends BaseContract { ); const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])'); + const abiEncoder = self._lookupAbiEncoder( + 'assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])', + ); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, }; public EIP712_DOMAIN_HASH = { - async callAsync( - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TECContract; + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + const self = (this as any) as TECContract; const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -135,26 +147,24 @@ export class TECContract extends BaseContract { BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, }; public executeTransaction = { async sendTransactionAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, + transaction: { salt: BigNumber; signerAddress: string; data: string }, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], txData: Partial = {}, ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); + const self = (this as any) as TECContract; + const encodedData = self._strictEncodeArguments( + 'executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', + [transaction, transactionSignature, approvalExpirationTimeSeconds, approvalSignatures], + ); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -167,25 +177,24 @@ export class TECContract extends BaseContract { transaction, transactionSignature, approvalExpirationTimeSeconds, - approvalSignatures + approvalSignatures, ), ); const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults); return txHash; }, async estimateGasAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, + transaction: { salt: BigNumber; signerAddress: string; data: string }, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], txData: Partial = {}, ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); + const self = (this as any) as TECContract; + const encodedData = self._strictEncodeArguments( + 'executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', + [transaction, transactionSignature, approvalExpirationTimeSeconds, approvalSignatures], + ); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -198,34 +207,31 @@ export class TECContract extends BaseContract { return gas; }, getABIEncodedTransactionData( - transaction: {salt: BigNumber;signerAddress: string;data: string}, + transaction: { salt: BigNumber; signerAddress: string; data: string }, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], ): string { - const self = this as any as TECContract; - const abiEncodedTransactionData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); + const self = (this as any) as TECContract; + const abiEncodedTransactionData = self._strictEncodeArguments( + 'executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', + [transaction, transactionSignature, approvalExpirationTimeSeconds, approvalSignatures], + ); return abiEncodedTransactionData; }, async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, + transaction: { salt: BigNumber; signerAddress: string; data: string }, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TECContract; - const encodedData = self._strictEncodeArguments('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); + ): Promise { + const self = (this as any) as TECContract; + const encodedData = self._strictEncodeArguments( + 'executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', + [transaction, transactionSignature, approvalExpirationTimeSeconds, approvalSignatures], + ); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -236,10 +242,11 @@ export class TECContract extends BaseContract { ); const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])'); + const abiEncoder = self._lookupAbiEncoder( + 'executeTransaction((uint256,address,bytes),bytes,uint256[],bytes[])', + ); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, @@ -248,7 +255,7 @@ export class TECContract extends BaseContract { artifact: ContractArtifact | SimpleContractArtifact, supportedProvider: SupportedProvider, txDefaults: Partial, - _exchange: string, + _exchange: string, ): Promise { if (_.isUndefined(artifact.compilerOutput)) { throw new Error('Compiler output not found in the artifact file'); @@ -256,32 +263,28 @@ export class TECContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return TECContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange -); + return TECContract.deployAsync(bytecode, abi, provider, txDefaults, _exchange); } public static async deployAsync( bytecode: string, abi: ContractAbi, supportedProvider: SupportedProvider, txDefaults: Partial, - _exchange: string, + _exchange: string, ): Promise { const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [_exchange -] = BaseContract._formatABIDataItemList( + [_exchange] = BaseContract._formatABIDataItemList( constructorAbi.inputs, - [_exchange -], + [_exchange], BaseContract._bigNumberToString, ); const iface = new ethers.utils.Interface(abi); const deployInfo = iface.deployFunction; - const txData = deployInfo.encode(bytecode, [_exchange -]); + const txData = deployInfo.encode(bytecode, [_exchange]); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - {data: txData}, + { data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); @@ -290,8 +293,7 @@ export class TECContract extends BaseContract { const txReceipt = await web3Wrapper.awaitTransactionSuccessAsync(txHash); logUtils.log(`TEC successfully deployed at ${txReceipt.contractAddress}`); const contractInstance = new TECContract(abi, txReceipt.contractAddress as string, provider, txDefaults); - contractInstance.constructorArgs = [_exchange -]; + contractInstance.constructorArgs = [_exchange]; return contractInstance; } constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { diff --git a/contracts/tec/generated-wrappers/test_libs.ts b/contracts/tec/generated-wrappers/test_libs.ts index 18dac711e6..46e2105eca 100644 --- a/contracts/tec/generated-wrappers/test_libs.ts +++ b/contracts/tec/generated-wrappers/test_libs.ts @@ -2,7 +2,18 @@ // tslint:disable:no-unused-variable // tslint:disable:no-unbound-method import { BaseContract } from '@0x/base-contract'; -import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; +import { + BlockParam, + BlockParamLiteral, + CallData, + ContractAbi, + ContractArtifact, + DecodedLogArgs, + MethodAbi, + TxData, + TxDataPayable, + SupportedProvider, +} from 'ethereum-types'; import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; @@ -10,21 +21,20 @@ import * as ethers from 'ethers'; import * as _ from 'lodash'; // tslint:enable:no-unused-variable - /* istanbul ignore next */ // tslint:disable:no-parameter-reassignment // tslint:disable-next-line:class-name export class TestLibsContract extends BaseContract { public publicGetTransactionHash = { async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, + transaction: { salt: BigNumber; signerAddress: string; data: string }, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestLibsContract; - const encodedData = self._strictEncodeArguments('publicGetTransactionHash((uint256,address,bytes))', [transaction - ]); + ): Promise { + const self = (this as any) as TestLibsContract; + const encodedData = self._strictEncodeArguments('publicGetTransactionHash((uint256,address,bytes))', [ + transaction, + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -37,22 +47,25 @@ export class TestLibsContract extends BaseContract { BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('publicGetTransactionHash((uint256,address,bytes))'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, }; public publicGetTECApprovalHash = { async callAsync( - approval: {transactionHash: string;transactionSignature: string;approvalExpirationTimeSeconds: BigNumber}, + approval: { + transactionHash: string; + transactionSignature: string; + approvalExpirationTimeSeconds: BigNumber; + }, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestLibsContract; - const encodedData = self._strictEncodeArguments('publicGetTECApprovalHash((bytes32,bytes,uint256))', [approval - ]); + ): Promise { + const self = (this as any) as TestLibsContract; + const encodedData = self._strictEncodeArguments('publicGetTECApprovalHash((bytes32,bytes,uint256))', [ + approval, + ]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -65,19 +78,14 @@ export class TestLibsContract extends BaseContract { BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('publicGetTECApprovalHash((bytes32,bytes,uint256))'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, }; public EIP712_DOMAIN_HASH = { - async callAsync( - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestLibsContract; + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + const self = (this as any) as TestLibsContract; const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -91,8 +99,7 @@ export class TestLibsContract extends BaseContract { BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, @@ -108,7 +115,7 @@ export class TestLibsContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return TestLibsContract.deployAsync(bytecode, abi, provider, txDefaults, ); + return TestLibsContract.deployAsync(bytecode, abi, provider, txDefaults); } public static async deployAsync( bytecode: string, @@ -118,17 +125,13 @@ export class TestLibsContract extends BaseContract { ): Promise { const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList( - constructorAbi.inputs, - [], - BaseContract._bigNumberToString, - ); + [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); const iface = new ethers.utils.Interface(abi); const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - {data: txData}, + { data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); diff --git a/contracts/tec/generated-wrappers/test_mixins.ts b/contracts/tec/generated-wrappers/test_mixins.ts index 6c3c1eacfc..335e84be05 100644 --- a/contracts/tec/generated-wrappers/test_mixins.ts +++ b/contracts/tec/generated-wrappers/test_mixins.ts @@ -2,7 +2,18 @@ // tslint:disable:no-unused-variable // tslint:disable:no-unbound-method import { BaseContract } from '@0x/base-contract'; -import { BlockParam, BlockParamLiteral, CallData, ContractAbi, ContractArtifact, DecodedLogArgs, MethodAbi, TxData, TxDataPayable, SupportedProvider } from 'ethereum-types'; +import { + BlockParam, + BlockParamLiteral, + CallData, + ContractAbi, + ContractArtifact, + DecodedLogArgs, + MethodAbi, + TxData, + TxDataPayable, + SupportedProvider, +} from 'ethereum-types'; import { BigNumber, classUtils, logUtils, providerUtils } from '@0x/utils'; import { SimpleContractArtifact } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; @@ -10,7 +21,6 @@ import * as ethers from 'ethers'; import * as _ from 'lodash'; // tslint:enable:no-unused-variable - /* istanbul ignore next */ // tslint:disable:no-parameter-reassignment // tslint:disable-next-line:class-name @@ -21,12 +31,9 @@ export class TestMixinsContract extends BaseContract { signature: string, callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestMixinsContract; - const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, - signature - ]); + ): Promise { + const self = (this as any) as TestMixinsContract; + const encodedData = self._strictEncodeArguments('getSignerAddress(bytes32,bytes)', [hash, signature]); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -39,30 +46,39 @@ export class TestMixinsContract extends BaseContract { BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('getSignerAddress(bytes32,bytes)'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, }; public assertValidTransactionOrdersApproval = { async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, - orders: Array<{makerAddress: string;takerAddress: string;feeRecipientAddress: string;senderAddress: string;makerAssetAmount: BigNumber;takerAssetAmount: BigNumber;makerFee: BigNumber;takerFee: BigNumber;expirationTimeSeconds: BigNumber;salt: BigNumber;makerAssetData: string;takerAssetData: string}>, + transaction: { salt: BigNumber; signerAddress: string; data: string }, + orders: Array<{ + makerAddress: string; + takerAddress: string; + feeRecipientAddress: string; + senderAddress: string; + makerAssetAmount: BigNumber; + takerAssetAmount: BigNumber; + makerFee: BigNumber; + takerFee: BigNumber; + expirationTimeSeconds: BigNumber; + salt: BigNumber; + makerAssetData: string; + takerAssetData: string; + }>, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestMixinsContract; - const encodedData = self._strictEncodeArguments('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])', [transaction, - orders, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); + ): Promise { + const self = (this as any) as TestMixinsContract; + const encodedData = self._strictEncodeArguments( + 'assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])', + [transaction, orders, transactionSignature, approvalExpirationTimeSeconds, approvalSignatures], + ); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -73,30 +89,29 @@ export class TestMixinsContract extends BaseContract { ); const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])'); + const abiEncoder = self._lookupAbiEncoder( + 'assertValidTransactionOrdersApproval((uint256,address,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],bytes,uint256[],bytes[])', + ); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, }; public assertValidTECApprovals = { async callAsync( - transaction: {salt: BigNumber;signerAddress: string;data: string}, + transaction: { salt: BigNumber; signerAddress: string; data: string }, transactionSignature: string, approvalExpirationTimeSeconds: BigNumber[], approvalSignatures: string[], callData: Partial = {}, defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestMixinsContract; - const encodedData = self._strictEncodeArguments('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])', [transaction, - transactionSignature, - approvalExpirationTimeSeconds, - approvalSignatures - ]); + ): Promise { + const self = (this as any) as TestMixinsContract; + const encodedData = self._strictEncodeArguments( + 'assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])', + [transaction, transactionSignature, approvalExpirationTimeSeconds, approvalSignatures], + ); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { to: self.address, @@ -107,21 +122,18 @@ export class TestMixinsContract extends BaseContract { ); const rawCallResult = await self._web3Wrapper.callAsync(callDataWithDefaults, defaultBlock); BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); - const abiEncoder = self._lookupAbiEncoder('assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])'); + const abiEncoder = self._lookupAbiEncoder( + 'assertValidTECApprovals((uint256,address,bytes),bytes,uint256[],bytes[])', + ); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, }; public EIP712_DOMAIN_HASH = { - async callAsync( - callData: Partial = {}, - defaultBlock?: BlockParam, - ): Promise { - const self = this as any as TestMixinsContract; + async callAsync(callData: Partial = {}, defaultBlock?: BlockParam): Promise { + const self = (this as any) as TestMixinsContract; const encodedData = self._strictEncodeArguments('EIP712_DOMAIN_HASH()', []); const callDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( { @@ -135,8 +147,7 @@ export class TestMixinsContract extends BaseContract { BaseContract._throwIfRevertWithReasonCallResult(rawCallResult); const abiEncoder = self._lookupAbiEncoder('EIP712_DOMAIN_HASH()'); // tslint:disable boolean-naming - const result = abiEncoder.strictDecodeReturnValue(rawCallResult); + const result = abiEncoder.strictDecodeReturnValue(rawCallResult); // tslint:enable boolean-naming return result; }, @@ -152,7 +163,7 @@ export class TestMixinsContract extends BaseContract { const provider = providerUtils.standardizeOrThrow(supportedProvider); const bytecode = artifact.compilerOutput.evm.bytecode.object; const abi = artifact.compilerOutput.abi; - return TestMixinsContract.deployAsync(bytecode, abi, provider, txDefaults, ); + return TestMixinsContract.deployAsync(bytecode, abi, provider, txDefaults); } public static async deployAsync( bytecode: string, @@ -162,17 +173,13 @@ export class TestMixinsContract extends BaseContract { ): Promise { const provider = providerUtils.standardizeOrThrow(supportedProvider); const constructorAbi = BaseContract._lookupConstructorAbi(abi); - [] = BaseContract._formatABIDataItemList( - constructorAbi.inputs, - [], - BaseContract._bigNumberToString, - ); + [] = BaseContract._formatABIDataItemList(constructorAbi.inputs, [], BaseContract._bigNumberToString); const iface = new ethers.utils.Interface(abi); const deployInfo = iface.deployFunction; const txData = deployInfo.encode(bytecode, []); const web3Wrapper = new Web3Wrapper(provider); const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - {data: txData}, + { data: txData }, txDefaults, web3Wrapper.estimateGasAsync.bind(web3Wrapper), ); diff --git a/python-packages/contract_artifacts/Coordinator.json b/python-packages/contract_artifacts/Coordinator.json index 3cc8a1fdd5..d61c9db2f4 100644 --- a/python-packages/contract_artifacts/Coordinator.json +++ b/python-packages/contract_artifacts/Coordinator.json @@ -1,364 +1,364 @@ { - "schemaVersion": "2.0.0", - "contractName": "Coordinator", - "compilerOutput": { - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "hash", - "type": "bytes32" - }, - { - "name": "signature", - "type": "bytes" - } - ], - "name": "getSignerAddress", - "outputs": [ - { - "name": "signerAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "name": "txOrigin", - "type": "address" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "executeTransaction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "name": "txOrigin", - "type": "address" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "assertValidCoordinatorApprovals", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "EIP712_DOMAIN_HASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "salt", - "type": "uint256" - }, - { - "name": "signerAddress", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transaction", - "type": "tuple" - }, - { - "components": [ - { - "name": "makerAddress", - "type": "address" - }, - { - "name": "takerAddress", - "type": "address" - }, - { - "name": "feeRecipientAddress", - "type": "address" - }, - { - "name": "senderAddress", - "type": "address" - }, - { - "name": "makerAssetAmount", - "type": "uint256" - }, - { - "name": "takerAssetAmount", - "type": "uint256" - }, - { - "name": "makerFee", - "type": "uint256" - }, - { - "name": "takerFee", - "type": "uint256" - }, - { - "name": "expirationTimeSeconds", - "type": "uint256" - }, - { - "name": "salt", - "type": "uint256" - }, - { - "name": "makerAssetData", - "type": "bytes" - }, - { - "name": "takerAssetData", - "type": "bytes" - } - ], - "name": "orders", - "type": "tuple[]" - }, - { - "name": "txOrigin", - "type": "address" - }, - { - "name": "transactionSignature", - "type": "bytes" - }, - { - "name": "approvalExpirationTimeSeconds", - "type": "uint256[]" - }, - { - "name": "approvalSignatures", - "type": "bytes[]" - } - ], - "name": "assertValidTransactionOrdersApproval", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_exchange", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "0x60806040523480156200001157600080fd5b506040516020806200238083398101806040526200003391908101906200022b565b604080517f454950373132446f6d61696e28000000000000000000000000000000000000006020808301919091527f737472696e67206e616d652c0000000000000000000000000000000000000000602d8301527f737472696e672076657273696f6e2c000000000000000000000000000000000060398301527f6164647265737320766572696679696e67436f6e74726163740000000000000060488301527f29000000000000000000000000000000000000000000000000000000000000006061830152825180830360420181526062830180855281519183019190912060a28401855260179091527f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000060829093019290925282518084018452600581527f312e302e30000000000000000000000000000000000000000000000000000000908201528251808201929092527f626d101e477fd17dd52afb3f9ad9eb016bf60f6e377877f34e8f3ea84c930236828401527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060830152306080808401919091528351808403909101815260a0909201909252805191012060005560018054600160a060020a031916600160a060020a039290921691909117905562000273565b600062000224825162000260565b9392505050565b6000602082840312156200023e57600080fd5b60006200024c848462000216565b949350505050565b600160a060020a031690565b60006200026d8262000254565b92915050565b6120fd80620002836000396000f3fe608060405234801561001057600080fd5b5060043610610084576000357c010000000000000000000000000000000000000000000000000000000090048063d2df07331161006d578063d2df0733146100c7578063e306f779146100da578063e3b1aa86146100ef57610084565b80630f7d8e391461008957806390c3bc3f146100b2575b600080fd5b61009c610097366004611888565b610102565b6040516100a99190611e6f565b60405180910390f35b6100c56100c036600461196e565b6104f7565b005b6100c56100d536600461196e565b6105a3565b6100e26105d4565b6040516100a99190611e7d565b6100c56100fd366004611a42565b6105da565b6000808251111515610149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f3b565b60405180910390fd5b600061015483610821565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f2b565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff6108e516565b905060006102c687602163ffffffff6108e516565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff6108e516565b9050600061041287602163ffffffff6108e516565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b92915050565b61050485858585856105a3565b6001548551602087015160408089015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361056a93909290918990600401611f5b565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050505050505050565b60606105b28660400151610930565b90506000815111156105cc576105cc8682878787876105da565b505050505050565b60005481565b3273ffffffffffffffffffffffffffffffffffffffff851614610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f0b565b600061063487610de8565b60408051600080825260208201909252845192935091905b80821461073c576000868281518110151561066357fe5b906020019060200201519050610677611220565b506040805160808101825273ffffffffffffffffffffffffffffffffffffffff8b16815260208101879052908101899052606081018290524282116106e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611edb565b60006106f382610dfb565b90506000610718828a8781518110151561070957fe5b90602001906020020151610102565b905061072a878263ffffffff610e0916565b9650506001909301925061064c915050565b5061074d823263ffffffff610e0916565b885190925060005b8082146108145789516000908b908390811061076d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561079c5761080c565b60008a828151811015156107ac57fe5b6020908102909101015160400151905060006107ce868363ffffffff610ed316565b9050801515610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e9b565b50505b600101610755565b5050505050505050505050565b600080825111151561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f1b565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061088f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eeb565b50016020015190565b60606000610944838263ffffffff610f1016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d50000000000000000000000000000000000000000000000000000000014806109d757507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610a2357507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610aad57610a30611248565b8351610a4690859060049063ffffffff610f7d16565b806020019051610a5991908101906118da565b604080516001808252818301909252919250816020015b610a78611248565b815260200190600190039081610a7057905050925080836000815181101515610a9d57fe5b6020908102909101015250610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610b3e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610b8a57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610bd657507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610c2257507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610c6e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610cba57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610cef578251610cd590849060049063ffffffff610f7d16565b806020019051610ce8919081019061184b565b9150610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610de257610d41611248565b610d49611248565b8451610d5f90869060049063ffffffff610f7d16565b806020019051610d72919081019061190f565b60408051600280825260608201909252929450909250816020015b610d95611248565b815260200190600190039081610d8d57905050935081846000815181101515610dba57fe5b602090810290910101528351819085906001908110610dd557fe5b6020908102909101015250505b50919050565b60006104f1610df683611049565b6110b7565b60006104f1610df6836110f7565b815160405160609184906020808202808401820192910182851015610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ecb565b82851115610e7457610e6d858583611156565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610ea157fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b6000602083510260208401818101815b81811015610f0657805180871415610efd57600195508291505b50602001610ee3565b5050505092915050565b600081600401835110151515610f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f4b565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eab565b8351821115610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ebb565b8282036040519080825280601f01601f191660200182016040528015611021576020820181803883390190505b5090506110426110308261121a565b8461103a8761121a565b018351611156565b9392505050565b604081810151825160209384015182519285019290922083517f213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c81529485019190915273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260608201526080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b604080820151825160208085015160608681015185519584019590952086517f2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e058152938401949094529482015292830152608082015260a09020919050565b6020811015611180576001816020036101000a038019835116818551168082178652505050611215565b8282141561118d57611215565b828211156111c75760208103905080820181840181515b828510156111bf5784518652602095860195909401936111a4565b905250611215565b60208103905080820181840183515b8186121561121057825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111d6565b855250505b505050565b60200190565b6040805160808101825260008082526020820181905260609282018390529181019190915290565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006110428235612038565b60006110428251612038565b6000601f8201831361132b57600080fd5b813561133e61133982611fcd565b611fa6565b81815260209384019390925082018360005b83811015610f06578135860161136688826114b2565b8452506020928301929190910190600101611350565b6000601f8201831361138d57600080fd5b815161139b61133982611fcd565b81815260209384019390925082018360005b83811015610f0657815186016113c38882611690565b84525060209283019291909101906001016113ad565b6000601f820183136113ea57600080fd5b81356113f861133982611fcd565b81815260209384019390925082018360005b83811015610f0657813586016114208882611547565b845250602092830192919091019060010161140a565b6000601f8201831361144757600080fd5b813561145561133982611fcd565b9150818183526020840193506020810190508385602084028201111561147a57600080fd5b60005b83811015610f06578161149088826114a6565b845250602092830192919091019060010161147d565b60006110428235612043565b6000601f820183136114c357600080fd5b81356114d161133982611fee565b915080825260208301602083018583830111156114ed57600080fd5b6114f883828461205f565b50505092915050565b6000601f8201831361151257600080fd5b815161152061133982611fee565b9150808252602083016020830185838301111561153c57600080fd5b6114f883828461206b565b6000610180828403121561155a57600080fd5b611565610180611fa6565b905060006115738484611302565b825250602061158484848301611302565b602083015250604061159884828501611302565b60408301525060606115ac84828501611302565b60608301525060806115c0848285016114a6565b60808301525060a06115d4848285016114a6565b60a08301525060c06115e8848285016114a6565b60c08301525060e06115fc848285016114a6565b60e083015250610100611611848285016114a6565b61010083015250610120611627848285016114a6565b6101208301525061014082013567ffffffffffffffff81111561164957600080fd5b611655848285016114b2565b6101408301525061016082013567ffffffffffffffff81111561167757600080fd5b611683848285016114b2565b6101608301525092915050565b600061018082840312156116a357600080fd5b6116ae610180611fa6565b905060006116bc848461130e565b82525060206116cd8484830161130e565b60208301525060406116e18482850161130e565b60408301525060606116f58482850161130e565b60608301525060806117098482850161183f565b60808301525060a061171d8482850161183f565b60a08301525060c06117318482850161183f565b60c08301525060e06117458482850161183f565b60e08301525061010061175a8482850161183f565b610100830152506101206117708482850161183f565b6101208301525061014082015167ffffffffffffffff81111561179257600080fd5b61179e84828501611501565b6101408301525061016082015167ffffffffffffffff8111156117c057600080fd5b61168384828501611501565b6000606082840312156117de57600080fd5b6117e86060611fa6565b905060006117f684846114a6565b825250602061180784848301611302565b602083015250604082013567ffffffffffffffff81111561182757600080fd5b611833848285016114b2565b60408301525092915050565b60006110428251612043565b60006020828403121561185d57600080fd5b815167ffffffffffffffff81111561187457600080fd5b6118808482850161137c565b949350505050565b6000806040838503121561189b57600080fd5b60006118a785856114a6565b925050602083013567ffffffffffffffff8111156118c457600080fd5b6118d0858286016114b2565b9150509250929050565b6000602082840312156118ec57600080fd5b815167ffffffffffffffff81111561190357600080fd5b61188084828501611690565b6000806040838503121561192257600080fd5b825167ffffffffffffffff81111561193957600080fd5b61194585828601611690565b925050602083015167ffffffffffffffff81111561196257600080fd5b6118d085828601611690565b600080600080600060a0868803121561198657600080fd5b853567ffffffffffffffff81111561199d57600080fd5b6119a9888289016117cc565b95505060206119ba88828901611302565b945050604086013567ffffffffffffffff8111156119d757600080fd5b6119e3888289016114b2565b935050606086013567ffffffffffffffff811115611a0057600080fd5b611a0c88828901611436565b925050608086013567ffffffffffffffff811115611a2957600080fd5b611a358882890161131a565b9150509295509295909350565b60008060008060008060c08789031215611a5b57600080fd5b863567ffffffffffffffff811115611a7257600080fd5b611a7e89828a016117cc565b965050602087013567ffffffffffffffff811115611a9b57600080fd5b611aa789828a016113d9565b9550506040611ab889828a01611302565b945050606087013567ffffffffffffffff811115611ad557600080fd5b611ae189828a016114b2565b935050608087013567ffffffffffffffff811115611afe57600080fd5b611b0a89828a01611436565b92505060a087013567ffffffffffffffff811115611b2757600080fd5b611b3389828a0161131a565b9150509295509295509295565b611b4981612038565b82525050565b611b4981612043565b6000611b6382612034565b808452611b7781602086016020860161206b565b611b808161209b565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b600e81527f494e56414c49445f4f524947494e000000000000000000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611b40565b602081016104f18284611b4f565b602080825281016104f181611b8d565b602080825281016104f181611bbd565b602080825281016104f181611bed565b602080825281016104f181611c1d565b602080825281016104f181611c4d565b602080825281016104f181611c7d565b602080825281016104f181611cad565b602080825281016104f181611d03565b602080825281016104f181611d33565b602080825281016104f181611d63565b602080825281016104f181611db9565b602080825281016104f181611de9565b602080825281016104f181611e19565b60808101611f698287611b4f565b611f766020830186611b40565b8181036040830152611f888185611b58565b90508181036060830152611f9c8184611b58565b9695505050505050565b60405181810167ffffffffffffffff81118282101715611fc557600080fd5b604052919050565b600067ffffffffffffffff821115611fe457600080fd5b5060209081020190565b600067ffffffffffffffff82111561200557600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612046565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561208657818101518382015260200161206e565b83811115612095576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a7230582013be4e9e281ff59b6be3d1c4c7af6075c7d255edc60be429d25841f98f287b3e6c6578706572696d656e74616cf50037", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x2380 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x33 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x22B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0x2D DUP4 ADD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0x39 DUP4 ADD MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0x48 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x61 DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB PUSH1 0x42 ADD DUP2 MSTORE PUSH1 0x62 DUP4 ADD DUP1 DUP6 MSTORE DUP2 MLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0xA2 DUP5 ADD DUP6 MSTORE PUSH1 0x17 SWAP1 SWAP2 MSTORE PUSH32 0x30782050726F746F636F6C20436F6F7264696E61746F72000000000000000000 PUSH1 0x82 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP3 ADD MSTORE DUP3 MLOAD DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0x626D101E477FD17DD52AFB3F9AD9EB016BF60F6E377877F34E8F3EA84C930236 DUP3 DUP5 ADD MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP4 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x273 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x224 DUP3 MLOAD PUSH3 0x260 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x24C DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26D DUP3 PUSH3 0x254 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x20FD DUP1 PUSH3 0x283 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xD2DF0733 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD2DF0733 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE3B1AA86 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x90C3BC3F EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1888 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E7D JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F3B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x821 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F2B JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP6 MLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x56A SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x598 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B2 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x930 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x5CC JUMPI PUSH2 0x5CC DUP7 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x5DA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST ORIGIN PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EQ PUSH2 0x629 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634 DUP8 PUSH2 0xDE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP1 DUP3 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x663 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x677 PUSH2 0x1220 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EDB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F3 DUP3 PUSH2 0xDFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x718 DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x709 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x72A DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x64C SWAP2 POP POP JUMP JUMPDEST POP PUSH2 0x74D DUP3 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST DUP9 MLOAD SWAP1 SWAP3 POP PUSH1 0x0 JUMPDEST DUP1 DUP3 EQ PUSH2 0x814 JUMPI DUP10 MLOAD PUSH1 0x0 SWAP1 DUP12 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x76D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x79C JUMPI PUSH2 0x80C JUMP JUMPDEST PUSH1 0x0 DUP11 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x7AC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x7CE DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xED3 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E9B JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x755 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x88F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EEB JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x944 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF10 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x9D7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xA23 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xAAD JUMPI PUSH2 0xA30 PUSH2 0x1248 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xA46 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xA59 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xA78 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xA70 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB3E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xB8A JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBD6 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC22 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC6E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCBA JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xCEF JUMPI DUP3 MLOAD PUSH2 0xCD5 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xCE8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x184B JUMP JUMPDEST SWAP2 POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xDE2 JUMPI PUSH2 0xD41 PUSH2 0x1248 JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1248 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xD5F SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD72 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x190F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xD95 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8D JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDBA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xDD5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x1049 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x10F7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0xE5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0xE74 JUMPI PUSH2 0xE6D DUP6 DUP6 DUP4 PUSH2 0x1156 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEA1 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD MUL PUSH1 0x20 DUP5 ADD DUP2 DUP2 ADD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP1 MLOAD DUP1 DUP8 EQ ISZERO PUSH2 0xEFD JUMPI PUSH1 0x1 SWAP6 POP DUP3 SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD PUSH2 0xEE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F4B JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1042 PUSH2 0x1030 DUP3 PUSH2 0x121A JUMP JUMPDEST DUP5 PUSH2 0x103A DUP8 PUSH2 0x121A JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x1156 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD MLOAD DUP3 MLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD PUSH32 0x213C6F636F3EA94E701C0ADF9B2624AA45A6C694F9A292C094F9A81C24B5DF4C DUP2 MSTORE SWAP5 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP7 DUP2 ADD MLOAD DUP6 MLOAD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 DUP7 MLOAD PUSH32 0x2FBCDBAA76BC7589916958AE919DFBEF04D23F6BBF26DE6FF317B32C6CC01E05 DUP2 MSTORE SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 DUP3 ADD MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 SWAP1 KECCAK256 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1180 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x118D JUMPI PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x11C7 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x11BF JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x11A4 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x1210 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x11D6 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x132B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x133E PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x1FA6 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1366 DUP9 DUP3 PUSH2 0x14B2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1350 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x139B PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x13C3 DUP9 DUP3 PUSH2 0x1690 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13F8 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1420 DUP9 DUP3 PUSH2 0x1547 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x140A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1455 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 PUSH2 0x1490 DUP9 DUP3 PUSH2 0x14A6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x147D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x14C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14D1 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x14ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x205F JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1520 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x153C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x206B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1565 PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1573 DUP5 DUP5 PUSH2 0x1302 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1584 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1598 DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x15AC DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x15C0 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x15D4 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x15E8 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x15FC DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1611 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1627 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1655 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AE PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16BC DUP5 DUP5 PUSH2 0x130E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x16CD DUP5 DUP5 DUP4 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16E1 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16F5 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1709 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x171D DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1731 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1745 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x175A DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1770 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x179E DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E8 PUSH1 0x60 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17F6 DUP5 DUP5 PUSH2 0x14A6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1807 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1833 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x137C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x189B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A7 DUP6 DUP6 PUSH2 0x14A6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1945 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A9 DUP9 DUP3 DUP10 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x19BA DUP9 DUP3 DUP10 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E3 DUP9 DUP3 DUP10 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0C DUP9 DUP3 DUP10 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A35 DUP9 DUP3 DUP10 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A7E DUP10 DUP3 DUP11 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AA7 DUP10 DUP3 DUP11 ADD PUSH2 0x13D9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1AB8 DUP10 DUP3 DUP11 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AE1 DUP10 DUP3 DUP11 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0A DUP10 DUP3 DUP11 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B33 DUP10 DUP3 DUP11 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2038 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B63 DUP3 PUSH2 0x2034 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1B77 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1B80 DUP2 PUSH2 0x209B JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F4F524947494E000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B40 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B4F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1B8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BBD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C7D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1CAD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D03 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DE9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E19 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x1F69 DUP3 DUP8 PUSH2 0x1B4F JUMP JUMPDEST PUSH2 0x1F76 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B40 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1F88 DUP2 DUP6 PUSH2 0x1B58 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1F9C DUP2 DUP5 PUSH2 0x1B58 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2005 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2046 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2086 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x206E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 SGT 0xbe 0x4e SWAP15 0x28 0x1f CREATE2 SWAP12 PUSH12 0xE3D1C4C7AF6075C7D255EDC6 SIGNEXTEND 0xe4 0x29 0xd2 PC COINBASE 0xf9 DUP16 0x28 PUSH28 0x3E6C6578706572696D656E74616CF500370000000000000000000000 ", - "sourceMap": "837:227:0:-;;;977:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;977:85:0;;;;;;;;;;;;;;;;;;;;;;1067:148:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;1067:148:10;;;;;;1057:159;;;;;;;;;1533:18;;;;;;;;;;;;;;;;;;1583:21;;;;;;;;;;;;;;;1438:214;;;;;;;;;1517:36;1438:214;;;;1567:39;1438:214;;;;1636:4;1438:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1438:214:10;;;;;;;1428:225;;;;;-1:-1:-1;1407:246:10;1067:148;830:35:8;;-1:-1:-1;;;;;;830:35:8;-1:-1:-1;;;;;830:35:8;;;;;;;;;;837:227:0;;5:122:-1;;83:39;114:6;108:13;83:39;;;74:48;68:59;-1:-1;;;68:59;134:263;;249:2;237:9;228:7;224:23;220:32;217:2;;;265:1;262;255:12;217:2;300:1;317:64;373:7;353:9;317:64;;;307:74;211:186;-1:-1;;;;211:186;404:128;-1:-1;;;;;473:54;;456:76;539:105;;608:31;633:5;608:31;;;597:42;591:53;-1:-1;;591:53;;837:227:0;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b5060043610610084576000357c010000000000000000000000000000000000000000000000000000000090048063d2df07331161006d578063d2df0733146100c7578063e306f779146100da578063e3b1aa86146100ef57610084565b80630f7d8e391461008957806390c3bc3f146100b2575b600080fd5b61009c610097366004611888565b610102565b6040516100a99190611e6f565b60405180910390f35b6100c56100c036600461196e565b6104f7565b005b6100c56100d536600461196e565b6105a3565b6100e26105d4565b6040516100a99190611e7d565b6100c56100fd366004611a42565b6105da565b6000808251111515610149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f3b565b60405180910390fd5b600061015483610821565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f2b565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff6108e516565b905060006102c687602163ffffffff6108e516565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff6108e516565b9050600061041287602163ffffffff6108e516565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b92915050565b61050485858585856105a3565b6001548551602087015160408089015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361056a93909290918990600401611f5b565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050505050505050565b60606105b28660400151610930565b90506000815111156105cc576105cc8682878787876105da565b505050505050565b60005481565b3273ffffffffffffffffffffffffffffffffffffffff851614610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f0b565b600061063487610de8565b60408051600080825260208201909252845192935091905b80821461073c576000868281518110151561066357fe5b906020019060200201519050610677611220565b506040805160808101825273ffffffffffffffffffffffffffffffffffffffff8b16815260208101879052908101899052606081018290524282116106e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611edb565b60006106f382610dfb565b90506000610718828a8781518110151561070957fe5b90602001906020020151610102565b905061072a878263ffffffff610e0916565b9650506001909301925061064c915050565b5061074d823263ffffffff610e0916565b885190925060005b8082146108145789516000908b908390811061076d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561079c5761080c565b60008a828151811015156107ac57fe5b6020908102909101015160400151905060006107ce868363ffffffff610ed316565b9050801515610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e9b565b50505b600101610755565b5050505050505050505050565b600080825111151561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f1b565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061088f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eeb565b50016020015190565b60606000610944838263ffffffff610f1016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d50000000000000000000000000000000000000000000000000000000014806109d757507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610a2357507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610aad57610a30611248565b8351610a4690859060049063ffffffff610f7d16565b806020019051610a5991908101906118da565b604080516001808252818301909252919250816020015b610a78611248565b815260200190600190039081610a7057905050925080836000815181101515610a9d57fe5b6020908102909101015250610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610b3e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610b8a57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610bd657507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610c2257507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610c6e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610cba57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610cef578251610cd590849060049063ffffffff610f7d16565b806020019051610ce8919081019061184b565b9150610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610de257610d41611248565b610d49611248565b8451610d5f90869060049063ffffffff610f7d16565b806020019051610d72919081019061190f565b60408051600280825260608201909252929450909250816020015b610d95611248565b815260200190600190039081610d8d57905050935081846000815181101515610dba57fe5b602090810290910101528351819085906001908110610dd557fe5b6020908102909101015250505b50919050565b60006104f1610df683611049565b6110b7565b60006104f1610df6836110f7565b815160405160609184906020808202808401820192910182851015610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ecb565b82851115610e7457610e6d858583611156565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610ea157fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b6000602083510260208401818101815b81811015610f0657805180871415610efd57600195508291505b50602001610ee3565b5050505092915050565b600081600401835110151515610f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f4b565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eab565b8351821115610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ebb565b8282036040519080825280601f01601f191660200182016040528015611021576020820181803883390190505b5090506110426110308261121a565b8461103a8761121a565b018351611156565b9392505050565b604081810151825160209384015182519285019290922083517f213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c81529485019190915273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260608201526080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b604080820151825160208085015160608681015185519584019590952086517f2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e058152938401949094529482015292830152608082015260a09020919050565b6020811015611180576001816020036101000a038019835116818551168082178652505050611215565b8282141561118d57611215565b828211156111c75760208103905080820181840181515b828510156111bf5784518652602095860195909401936111a4565b905250611215565b60208103905080820181840183515b8186121561121057825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111d6565b855250505b505050565b60200190565b6040805160808101825260008082526020820181905260609282018390529181019190915290565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006110428235612038565b60006110428251612038565b6000601f8201831361132b57600080fd5b813561133e61133982611fcd565b611fa6565b81815260209384019390925082018360005b83811015610f06578135860161136688826114b2565b8452506020928301929190910190600101611350565b6000601f8201831361138d57600080fd5b815161139b61133982611fcd565b81815260209384019390925082018360005b83811015610f0657815186016113c38882611690565b84525060209283019291909101906001016113ad565b6000601f820183136113ea57600080fd5b81356113f861133982611fcd565b81815260209384019390925082018360005b83811015610f0657813586016114208882611547565b845250602092830192919091019060010161140a565b6000601f8201831361144757600080fd5b813561145561133982611fcd565b9150818183526020840193506020810190508385602084028201111561147a57600080fd5b60005b83811015610f06578161149088826114a6565b845250602092830192919091019060010161147d565b60006110428235612043565b6000601f820183136114c357600080fd5b81356114d161133982611fee565b915080825260208301602083018583830111156114ed57600080fd5b6114f883828461205f565b50505092915050565b6000601f8201831361151257600080fd5b815161152061133982611fee565b9150808252602083016020830185838301111561153c57600080fd5b6114f883828461206b565b6000610180828403121561155a57600080fd5b611565610180611fa6565b905060006115738484611302565b825250602061158484848301611302565b602083015250604061159884828501611302565b60408301525060606115ac84828501611302565b60608301525060806115c0848285016114a6565b60808301525060a06115d4848285016114a6565b60a08301525060c06115e8848285016114a6565b60c08301525060e06115fc848285016114a6565b60e083015250610100611611848285016114a6565b61010083015250610120611627848285016114a6565b6101208301525061014082013567ffffffffffffffff81111561164957600080fd5b611655848285016114b2565b6101408301525061016082013567ffffffffffffffff81111561167757600080fd5b611683848285016114b2565b6101608301525092915050565b600061018082840312156116a357600080fd5b6116ae610180611fa6565b905060006116bc848461130e565b82525060206116cd8484830161130e565b60208301525060406116e18482850161130e565b60408301525060606116f58482850161130e565b60608301525060806117098482850161183f565b60808301525060a061171d8482850161183f565b60a08301525060c06117318482850161183f565b60c08301525060e06117458482850161183f565b60e08301525061010061175a8482850161183f565b610100830152506101206117708482850161183f565b6101208301525061014082015167ffffffffffffffff81111561179257600080fd5b61179e84828501611501565b6101408301525061016082015167ffffffffffffffff8111156117c057600080fd5b61168384828501611501565b6000606082840312156117de57600080fd5b6117e86060611fa6565b905060006117f684846114a6565b825250602061180784848301611302565b602083015250604082013567ffffffffffffffff81111561182757600080fd5b611833848285016114b2565b60408301525092915050565b60006110428251612043565b60006020828403121561185d57600080fd5b815167ffffffffffffffff81111561187457600080fd5b6118808482850161137c565b949350505050565b6000806040838503121561189b57600080fd5b60006118a785856114a6565b925050602083013567ffffffffffffffff8111156118c457600080fd5b6118d0858286016114b2565b9150509250929050565b6000602082840312156118ec57600080fd5b815167ffffffffffffffff81111561190357600080fd5b61188084828501611690565b6000806040838503121561192257600080fd5b825167ffffffffffffffff81111561193957600080fd5b61194585828601611690565b925050602083015167ffffffffffffffff81111561196257600080fd5b6118d085828601611690565b600080600080600060a0868803121561198657600080fd5b853567ffffffffffffffff81111561199d57600080fd5b6119a9888289016117cc565b95505060206119ba88828901611302565b945050604086013567ffffffffffffffff8111156119d757600080fd5b6119e3888289016114b2565b935050606086013567ffffffffffffffff811115611a0057600080fd5b611a0c88828901611436565b925050608086013567ffffffffffffffff811115611a2957600080fd5b611a358882890161131a565b9150509295509295909350565b60008060008060008060c08789031215611a5b57600080fd5b863567ffffffffffffffff811115611a7257600080fd5b611a7e89828a016117cc565b965050602087013567ffffffffffffffff811115611a9b57600080fd5b611aa789828a016113d9565b9550506040611ab889828a01611302565b945050606087013567ffffffffffffffff811115611ad557600080fd5b611ae189828a016114b2565b935050608087013567ffffffffffffffff811115611afe57600080fd5b611b0a89828a01611436565b92505060a087013567ffffffffffffffff811115611b2757600080fd5b611b3389828a0161131a565b9150509295509295509295565b611b4981612038565b82525050565b611b4981612043565b6000611b6382612034565b808452611b7781602086016020860161206b565b611b808161209b565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b600e81527f494e56414c49445f4f524947494e000000000000000000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611b40565b602081016104f18284611b4f565b602080825281016104f181611b8d565b602080825281016104f181611bbd565b602080825281016104f181611bed565b602080825281016104f181611c1d565b602080825281016104f181611c4d565b602080825281016104f181611c7d565b602080825281016104f181611cad565b602080825281016104f181611d03565b602080825281016104f181611d33565b602080825281016104f181611d63565b602080825281016104f181611db9565b602080825281016104f181611de9565b602080825281016104f181611e19565b60808101611f698287611b4f565b611f766020830186611b40565b8181036040830152611f888185611b58565b90508181036060830152611f9c8184611b58565b9695505050505050565b60405181810167ffffffffffffffff81118282101715611fc557600080fd5b604052919050565b600067ffffffffffffffff821115611fe457600080fd5b5060209081020190565b600067ffffffffffffffff82111561200557600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612046565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561208657818101518382015260200161206e565b83811115612095576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a7230582013be4e9e281ff59b6be3d1c4c7af6075c7d255edc60be429d25841f98f287b3e6c6578706572696d656e74616cf50037", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xD2DF0733 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD2DF0733 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE3B1AA86 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x90C3BC3F EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1888 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E7D JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F3B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x821 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F2B JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP6 MLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x56A SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x598 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B2 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x930 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x5CC JUMPI PUSH2 0x5CC DUP7 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x5DA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST ORIGIN PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EQ PUSH2 0x629 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634 DUP8 PUSH2 0xDE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP1 DUP3 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x663 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x677 PUSH2 0x1220 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EDB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F3 DUP3 PUSH2 0xDFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x718 DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x709 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x72A DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x64C SWAP2 POP POP JUMP JUMPDEST POP PUSH2 0x74D DUP3 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST DUP9 MLOAD SWAP1 SWAP3 POP PUSH1 0x0 JUMPDEST DUP1 DUP3 EQ PUSH2 0x814 JUMPI DUP10 MLOAD PUSH1 0x0 SWAP1 DUP12 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x76D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x79C JUMPI PUSH2 0x80C JUMP JUMPDEST PUSH1 0x0 DUP11 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x7AC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x7CE DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xED3 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E9B JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x755 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x88F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EEB JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x944 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF10 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x9D7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xA23 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xAAD JUMPI PUSH2 0xA30 PUSH2 0x1248 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xA46 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xA59 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xA78 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xA70 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB3E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xB8A JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBD6 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC22 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC6E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCBA JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xCEF JUMPI DUP3 MLOAD PUSH2 0xCD5 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xCE8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x184B JUMP JUMPDEST SWAP2 POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xDE2 JUMPI PUSH2 0xD41 PUSH2 0x1248 JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1248 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xD5F SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD72 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x190F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xD95 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8D JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDBA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xDD5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x1049 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x10F7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0xE5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0xE74 JUMPI PUSH2 0xE6D DUP6 DUP6 DUP4 PUSH2 0x1156 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEA1 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD MUL PUSH1 0x20 DUP5 ADD DUP2 DUP2 ADD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP1 MLOAD DUP1 DUP8 EQ ISZERO PUSH2 0xEFD JUMPI PUSH1 0x1 SWAP6 POP DUP3 SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD PUSH2 0xEE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F4B JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1042 PUSH2 0x1030 DUP3 PUSH2 0x121A JUMP JUMPDEST DUP5 PUSH2 0x103A DUP8 PUSH2 0x121A JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x1156 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD MLOAD DUP3 MLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD PUSH32 0x213C6F636F3EA94E701C0ADF9B2624AA45A6C694F9A292C094F9A81C24B5DF4C DUP2 MSTORE SWAP5 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP7 DUP2 ADD MLOAD DUP6 MLOAD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 DUP7 MLOAD PUSH32 0x2FBCDBAA76BC7589916958AE919DFBEF04D23F6BBF26DE6FF317B32C6CC01E05 DUP2 MSTORE SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 DUP3 ADD MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 SWAP1 KECCAK256 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1180 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x118D JUMPI PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x11C7 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x11BF JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x11A4 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x1210 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x11D6 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x132B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x133E PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x1FA6 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1366 DUP9 DUP3 PUSH2 0x14B2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1350 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x139B PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x13C3 DUP9 DUP3 PUSH2 0x1690 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13F8 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1420 DUP9 DUP3 PUSH2 0x1547 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x140A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1455 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 PUSH2 0x1490 DUP9 DUP3 PUSH2 0x14A6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x147D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x14C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14D1 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x14ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x205F JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1520 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x153C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x206B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1565 PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1573 DUP5 DUP5 PUSH2 0x1302 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1584 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1598 DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x15AC DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x15C0 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x15D4 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x15E8 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x15FC DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1611 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1627 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1655 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AE PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16BC DUP5 DUP5 PUSH2 0x130E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x16CD DUP5 DUP5 DUP4 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16E1 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16F5 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1709 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x171D DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1731 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1745 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x175A DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1770 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x179E DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E8 PUSH1 0x60 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17F6 DUP5 DUP5 PUSH2 0x14A6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1807 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1833 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x137C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x189B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A7 DUP6 DUP6 PUSH2 0x14A6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1945 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A9 DUP9 DUP3 DUP10 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x19BA DUP9 DUP3 DUP10 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E3 DUP9 DUP3 DUP10 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0C DUP9 DUP3 DUP10 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A35 DUP9 DUP3 DUP10 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A7E DUP10 DUP3 DUP11 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AA7 DUP10 DUP3 DUP11 ADD PUSH2 0x13D9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1AB8 DUP10 DUP3 DUP11 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AE1 DUP10 DUP3 DUP11 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0A DUP10 DUP3 DUP11 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B33 DUP10 DUP3 DUP11 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2038 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B63 DUP3 PUSH2 0x2034 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1B77 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1B80 DUP2 PUSH2 0x209B JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F4F524947494E000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B40 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B4F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1B8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BBD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C7D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1CAD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D03 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DE9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E19 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x1F69 DUP3 DUP8 PUSH2 0x1B4F JUMP JUMPDEST PUSH2 0x1F76 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B40 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1F88 DUP2 DUP6 PUSH2 0x1B58 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1F9C DUP2 DUP5 PUSH2 0x1B58 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2005 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2046 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2086 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x206E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 SGT 0xbe 0x4e SWAP15 0x28 0x1f CREATE2 SWAP12 PUSH12 0xE3D1C4C7AF6075C7D255EDC6 SIGNEXTEND 0xe4 0x29 0xd2 PC COINBASE 0xf9 DUP16 0x28 PUSH28 0x3E6C6578706572696D656E74616CF500370000000000000000000000 ", - "sourceMap": "837:227:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;837:227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:3;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1627:801:2;;;;;;;;;:::i;:::-;;2108:913:1;;;;;;;;;:::i;1323:33:10:-;;;:::i;:::-;;;;;;;;3713:2773:1;;;;;;;;;:::i;988:2549:3:-;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:3;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:3;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:3;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:3;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:3;;;;;;-1:-1:-1;2510:20:3;;-1:-1:-1;;;;;;2510:20:3;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:3;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:3;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:3;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:3;3499:31;;;;;;;;;;;988:2549;;;;;:::o;1627:801:2:-;2008:197;2053:11;2078:8;2100:20;2134:29;2177:18;2008:31;:197::i;:::-;2251:8;;2292:16;;2322:25;;;;2361:16;;;;;2251:170;;;;;:8;;;;;:27;;:170;;2292:16;;2322:25;;2391:20;;2251:170;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2251:170:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2251:170:2;;;;1627:801;;;;;:::o;2108:913:1:-;2511:30;2544:38;2565:11;:16;;;2544:20;:38::i;:::-;2511:71;;2669:1;2653:6;:13;:17;2649:366;;;2754:250;2808:11;2837:6;2861:8;2887:20;2925:29;2972:18;2754:36;:250::i;:::-;2108:913;;;;;;:::o;1323:33:10:-;;;;:::o;3713:2773:1:-;4182:9;:21;;;;4161:82;;;;;;;;;;;;;;4285:23;4311:31;4330:11;4311:18;:31::i;:::-;4445:16;;;4459:1;4445:16;;;;;;;;;4499:25;;4285:57;;-1:-1:-1;4445:16:1;4499:25;4534:1151;4554:21;;;4534:1151;;4635:44;4682:29;4712:1;4682:32;;;;;;;;;;;;;;;;;;4635:79;;4728:35;;:::i;:::-;-1:-1:-1;4766:266:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5220:15;5181:54;;5094:191;;;;;;;;;;;;;;5364:20;5387:36;5414:8;5387:26;:36::i;:::-;5364:59;;5437:29;5469:53;5486:12;5500:18;5519:1;5500:21;;;;;;;;;;;;;;;;;;5469:16;:53::i;:::-;5437:85;-1:-1:-1;5621:53:1;:23;5437:85;5621:53;:30;:53;:::i;:::-;5595:79;-1:-1:-1;;4577:3:1;;;;;-1:-1:-1;4534:1151:1;;-1:-1:-1;;4534:1151:1;;-1:-1:-1;5801:41:1;:23;5832:9;5801:41;:30;:41;:::i;:::-;5884:13;;5775:67;;-1:-1:-1;5861:20:1;5907:573;5927:17;;;5907:573;;6043:9;;6078:1;;6043:6;;6050:1;;6043:9;;;;;;;;;;;;;;:23;;;:37;;;6039:84;;;6100:8;;6039:84;6214:23;6240:6;6247:1;6240:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;6283:20:1;6306:49;:23;6240:29;6306:49;:32;:49;:::i;:::-;6283:72;;6394:15;6369:100;;;;;;;;;;;;;;;;5907:573;;;5946:3;;5907:573;;;;3713:2773;;;;;;;;;;:::o;8315:448:22:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:22;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:22;13631:2;13729:13;13723:20;;13292:490::o;6698:1760:1:-;6794:30;6840:15;6858:18;:4;6840:15;6858:18;:15;:18;:::i;:::-;6840:36;-1:-1:-1;6903:31:1;;;6915:19;6903:31;;:87;;-1:-1:-1;6950:40:1;;;6962:28;6950:40;6903:87;:142;;;-1:-1:-1;7006:39:1;;;7018:27;7006:39;6903:142;6886:1543;;;7106:27;;:::i;:::-;7179:11;;7165:26;;7179:4;;7176:1;;7165:26;:10;:26;:::i;:::-;7137:102;;;;;;;;;;;;;;7262:23;;;7283:1;7262:23;;;;;;;;;7105:134;;-1:-1:-1;7262:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7253:32;;7311:5;7299:6;7306:1;7299:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6886:1543:1;;;7350:38;;;7362:26;7350:38;;:101;;-1:-1:-1;7404:47:1;;;7416:35;7404:47;7350:101;:163;;;-1:-1:-1;7467:46:1;;;7479:34;7467:46;7350:163;:217;;;-1:-1:-1;7529:38:1;;;7541:26;7529:38;7350:217;:280;;;-1:-1:-1;7583:47:1;;;7595:35;7583:47;7350:280;:335;;;-1:-1:-1;7646:39:1;;;7658:27;7646:39;7350:335;:399;;;-1:-1:-1;7701:48:1;;;7713:36;7701:48;7350:399;7333:1096;;;7898:11;;7884:26;;7898:4;;7895:1;;7884:26;:10;:26;:::i;:::-;7856:104;;;;;;;;;;;;;;7845:115;;7333:1096;;;7981:33;;;7993:21;7981:33;7977:452;;;8075:31;;:::i;:::-;8108:32;;:::i;:::-;8186:11;;8172:26;;8186:4;;8183:1;;8172:26;:10;:26;:::i;:::-;8144:118;;;;;;;;;;;;;;8324:23;;;8345:1;8324:23;;;;;;;;;8074:188;;-1:-1:-1;8074:188:1;;-1:-1:-1;8324:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8315:32;;8373:9;8361:6;8368:1;8361:9;;;;;;;;;;;;;;;;;;:21;8396:9;;8408:10;;8396:6;;8403:1;;8396:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7977:452:1;-1:-1:-1;6698:1760:1;;;:::o;1602:406:11:-;1715:23;1916:53;1934:34;1956:11;1934:21;:34::i;:::-;1916:17;:53::i;2006:259:9:-;2126:20;2177:52;2195:33;2219:8;2195:23;:33::i;1089:2103:21:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:21;;-1:-1:-1;;;;;1089:2103:21;;;;:::o;3431:1034::-;3543:12;3686:2;3671:12;3665:19;3661:28;3799:2;3785:12;3781:21;3911:12;3891:18;3887:37;3985:18;3972:453;4011:16;4008:1;4005:23;3972:453;;;4130:1;4124:8;4226:12;4218:6;4215:24;4212:2;;;4316:1;4305:12;;4377:16;4372:21;;4212:2;-1:-1:-1;4042:2:21;4035:10;3972:453;;;-1:-1:-1;;;;3431:1034:21;;;;:::o;15595:687:22:-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:22;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:22;87:34:-1;135:17;;-1:-1;6890:20:22;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;2255:1419:11:-;2489:16;;;;;2530;;2580:25;;;;;3004:11;;2989:13;;;2979:37;;;;3088:9;;992:66;3111:26;;3237:15;;;3230:29;;;;3382:42;3363:62;;;3346:15;;;3339:87;;;;2469:17;3464:15;;3457:33;3631:3;3613:22;;;2255:1419::o;1856:924:10:-;1950:14;2007:18;2319:2;2313:9;2351:66;2336:82;;2468:1;2456:14;;2449:40;;;;2586:2;2574:15;;2567:35;;;;2738:2;2720:21;;;1856:924::o;2605:1613:9:-;2858:29;;;;;2916:17;;2969:24;;;;;2822:33;3043:38;;;;3537:27;;3506:29;;;3496:69;;;;3641:9;;1085:66;3664:26;;3758:15;;;3751:33;;;;3839:15;;;3832:40;3927:15;;;3920:49;4036:3;4024:16;;4017:55;4175:3;4157:22;;2605:1613;;;:::o;1808:4337:22:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:22;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:22;1808:4337;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;837:227:0:-;;;;;;;;;-1:-1:-1;837:227:0;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1283;;;;;;12561:3;12549:9;12540:7;12536:23;12532:33;12529:2;;;12578:1;12575;12568:12;12529:2;12613:31;;12664:18;12653:30;;12650:2;;;12696:1;12693;12686:12;12650:2;12716:87;12795:7;12786:6;12775:9;12771:22;12716:87;;;12706:97;;12592:217;12840:2;12858:53;12903:7;12894:6;12883:9;12879:22;12858:53;;;12848:63;;12819:98;12976:2;12965:9;12961:18;12948:32;13000:18;12992:6;12989:30;12986:2;;;13032:1;13029;13022:12;12986:2;13052:62;13106:7;13097:6;13086:9;13082:22;13052:62;;;13042:72;;12927:193;13179:2;13168:9;13164:18;13151:32;13203:18;13195:6;13192:30;13189:2;;;13235:1;13232;13225:12;13189:2;13255:78;13325:7;13316:6;13305:9;13301:22;13255:78;;;13245:88;;13130:209;13398:3;13387:9;13383:19;13370:33;13423:18;13415:6;13412:30;13409:2;;;13455:1;13452;13445:12;13409:2;13475:83;13550:7;13541:6;13530:9;13526:22;13475:83;;;13465:93;;13349:215;12523:1051;;;;;;;;;13581:1583;;;;;;;13912:3;13900:9;13891:7;13887:23;13883:33;13880:2;;;13929:1;13926;13919:12;13880:2;13964:31;;14015:18;14004:30;;14001:2;;;14047:1;14044;14037:12;14001:2;14067:87;14146:7;14137:6;14126:9;14122:22;14067:87;;;14057:97;;13943:217;14219:2;14208:9;14204:18;14191:32;14243:18;14235:6;14232:30;14229:2;;;14275:1;14272;14265:12;14229:2;14295:97;14384:7;14375:6;14364:9;14360:22;14295:97;;;14285:107;;14170:228;14429:2;14447:53;14492:7;14483:6;14472:9;14468:22;14447:53;;;14437:63;;14408:98;14565:2;14554:9;14550:18;14537:32;14589:18;14581:6;14578:30;14575:2;;;14621:1;14618;14611:12;14575:2;14641:62;14695:7;14686:6;14675:9;14671:22;14641:62;;;14631:72;;14516:193;14768:3;14757:9;14753:19;14740:33;14793:18;14785:6;14782:30;14779:2;;;14825:1;14822;14815:12;14779:2;14845:78;14915:7;14906:6;14895:9;14891:22;14845:78;;;14835:88;;14719:210;14988:3;14977:9;14973:19;14960:33;15013:18;15005:6;15002:30;14999:2;;;15045:1;15042;15035:12;14999:2;15065:83;15140:7;15131:6;15120:9;15116:22;15065:83;;;15055:93;;14939:215;13874:1290;;;;;;;;;15171:120;15254:31;15279:5;15254:31;;;15249:3;15242:44;15236:55;;;15298:120;15381:31;15406:5;15381:31;;15425:307;;15535:38;15567:5;15535:38;;;15590:6;15585:3;15578:19;15602:63;15658:6;15651:4;15646:3;15642:14;15635:4;15628:5;15624:16;15602:63;;;15697:29;15719:6;15697:29;;;15677:50;;;15690:4;15677:50;;15515:217;-1:-1;;;15515:217;16046:306;16211:2;16199:15;;16248:66;16243:2;16234:12;;16227:88;16343:2;16334:12;;16192:160;16361:306;16526:2;16514:15;;16563:66;16558:2;16549:12;;16542:88;16658:2;16649:12;;16507:160;16676:306;16841:2;16829:15;;16878:66;16873:2;16864:12;;16857:88;16973:2;16964:12;;16822:160;16991:306;17156:2;17144:15;;17193:66;17188:2;17179:12;;17172:88;17288:2;17279:12;;17137:160;17306:306;17471:2;17459:15;;17508:66;17503:2;17494:12;;17487:88;17603:2;17594:12;;17452:160;17621:306;17786:2;17774:15;;17823:66;17818:2;17809:12;;17802:88;17918:2;17909:12;;17767:160;17936:407;18101:2;18089:15;;18138:66;18133:2;18124:12;;18117:88;18239:66;18234:2;18225:12;;18218:88;18334:2;18325:12;;18082:261;18352:306;18517:2;18505:15;;18554:66;18549:2;18540:12;;18533:88;18649:2;18640:12;;18498:160;18667:306;18832:2;18820:15;;18869:66;18864:2;18855:12;;18848:88;18964:2;18955:12;;18813:160;18982:407;19147:2;19135:15;;19184:66;19179:2;19170:12;;19163:88;19285:66;19280:2;19271:12;;19264:88;19380:2;19371:12;;19128:261;19398:306;19563:2;19551:15;;19600:66;19595:2;19586:12;;19579:88;19695:2;19686:12;;19544:160;19713:306;19878:2;19866:15;;19915:66;19910:2;19901:12;;19894:88;20010:2;20001:12;;19859:160;20028:407;20193:2;20181:15;;20230:66;20225:2;20216:12;;20209:88;20331:66;20326:2;20317:12;;20310:88;20426:2;20417:12;;20174:261;20570:213;20688:2;20673:18;;20702:71;20677:9;20746:6;20702:71;;20790:213;20908:2;20893:18;;20922:71;20897:9;20966:6;20922:71;;21010:407;21201:2;21215:47;;;21186:18;;21276:131;21186:18;21276:131;;21424:407;21615:2;21629:47;;;21600:18;;21690:131;21600:18;21690:131;;21838:407;22029:2;22043:47;;;22014:18;;22104:131;22014:18;22104:131;;22252:407;22443:2;22457:47;;;22428:18;;22518:131;22428:18;22518:131;;22666:407;22857:2;22871:47;;;22842:18;;22932:131;22842:18;22932:131;;23080:407;23271:2;23285:47;;;23256:18;;23346:131;23256:18;23346:131;;23494:407;23685:2;23699:47;;;23670:18;;23760:131;23670:18;23760:131;;23908:407;24099:2;24113:47;;;24084:18;;24174:131;24084:18;24174:131;;24322:407;24513:2;24527:47;;;24498:18;;24588:131;24498:18;24588:131;;24736:407;24927:2;24941:47;;;24912:18;;25002:131;24912:18;25002:131;;25150:407;25341:2;25355:47;;;25326:18;;25416:131;25326:18;25416:131;;25564:407;25755:2;25769:47;;;25740:18;;25830:131;25740:18;25830:131;;25978:407;26169:2;26183:47;;;26154:18;;26244:131;26154:18;26244:131;;26392:707;26626:3;26611:19;;26641:71;26615:9;26685:6;26641:71;;;26723:72;26791:2;26780:9;26776:18;26767:6;26723:72;;;26843:9;26837:4;26833:20;26828:2;26817:9;26813:18;26806:48;26868:72;26935:4;26926:6;26868:72;;;26860:80;;26988:9;26982:4;26978:20;26973:2;26962:9;26958:18;26951:48;27013:76;27084:4;27075:6;27013:76;;;27005:84;26597:502;-1:-1;;;;;;26597:502;27106:256;27168:2;27162:9;27194:17;;;27269:18;27254:34;;27290:22;;;27251:62;27248:2;;;27326:1;27323;27316:12;27248:2;27342;27335:22;27146:216;;-1:-1;27146:216;27369:263;;27533:18;27525:6;27522:30;27519:2;;;27565:1;27562;27555:12;27519:2;-1:-1;27594:4;27582:17;;;27612:15;;27456:176;28468:254;;28607:18;28599:6;28596:30;28593:2;;;28639:1;28636;28629:12;28593:2;-1:-1;28712:4;28683;28660:17;;;;28679:9;28656:33;28702:15;;28530:192;28994:87;29064:12;;29048:33;29186:105;;29255:31;29280:5;29255:31;;29298:79;29367:5;29350:27;29384:128;29464:42;29453:54;;29436:76;29890:145;29971:6;29966:3;29961;29948:30;-1:-1;30027:1;30009:16;;30002:27;29941:94;30044:268;30109:1;30116:101;30130:6;30127:1;30124:13;30116:101;;;30197:11;;;30191:18;30178:11;;;30171:39;30152:2;30145:10;30116:101;;;30232:6;30229:1;30226:13;30223:2;;;30297:1;30288:6;30283:3;30279:16;30272:27;30223:2;30093:219;;;;;30320:97;30408:2;30388:14;30404:7;30384:28;;30368:49" - } - } - }, - "sources": { - "src/Coordinator.sol": { - "id": 0 - }, - "src/libs/LibConstants.sol": { - "id": 8 - }, - "src/interfaces/ITransactions.sol": { - "id": 7 - }, - "src/MixinSignatureValidator.sol": { - "id": 3 - }, - "@0x/contracts-utils/contracts/src/LibBytes.sol": { - "id": 22 - }, - "src/mixins/MSignatureValidator.sol": { - "id": 13 - }, - "src/interfaces/ISignatureValidator.sol": { - "id": 6 - }, - "src/MixinCoordinatorApprovalVerifier.sol": { - "id": 1 - }, - "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { - "id": 19 - }, - "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { - "id": 20 - }, - "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { - "id": 18 - }, - "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { - "id": 21 - }, - "src/libs/LibCoordinatorApproval.sol": { - "id": 9 - }, - "src/libs/LibEIP712Domain.sol": { - "id": 10 - }, - "src/libs/LibZeroExTransaction.sol": { - "id": 11 - }, - "src/mixins/MCoordinatorApprovalVerifier.sol": { - "id": 12 - }, - "src/interfaces/ICoordinatorApprovalVerifier.sol": { - "id": 4 - }, - "src/MixinCoordinatorCore.sol": { - "id": 2 - }, - "src/interfaces/ICoordinatorCore.sol": { - "id": 5 - } - }, - "sourceCodes": { - "src/Coordinator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibConstants.sol\";\nimport \"./MixinSignatureValidator.sol\";\nimport \"./MixinCoordinatorApprovalVerifier.sol\";\nimport \"./MixinCoordinatorCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract Coordinator is\n LibConstants,\n MixinSignatureValidator,\n MixinCoordinatorApprovalVerifier,\n MixinCoordinatorCore\n{\n constructor (address _exchange)\n public\n LibConstants(_exchange)\n {}\n}\n", - "src/libs/LibConstants.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ITransactions.sol\";\n\n\ncontract LibConstants {\n\n // solhint-disable-next-line var-name-mixedcase\n ITransactions internal EXCHANGE;\n\n constructor (address _exchange)\n public\n {\n EXCHANGE = ITransactions(_exchange);\n }\n}\n", - "src/interfaces/ITransactions.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\npragma solidity ^0.5.3;\n\n\ncontract ITransactions {\n\n /// @dev Executes an exchange method call in the context of signer.\n /// @param salt Arbitrary number to ensure uniqueness of transaction hash.\n /// @param signerAddress Address of transaction signer.\n /// @param data AbiV2 encoded calldata.\n /// @param signature Proof of signer transaction by signer.\n function executeTransaction(\n uint256 salt,\n address signerAddress,\n bytes calldata data,\n bytes calldata signature\n )\n external;\n}\n", - "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", - "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", - "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", - "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", - "src/MixinCoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibCoordinatorApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MCoordinatorApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinCoordinatorApprovalVerifier is\n LibExchangeSelectors,\n LibCoordinatorApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MCoordinatorApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidCoordinatorApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n txOrigin,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Verify that Ethereum tx signer is the same as the approved txOrigin\n require(\n tx.origin == txOrigin,\n \"INVALID_ORIGIN\"\n );\n\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i != signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n CoordinatorApproval memory approval = CoordinatorApproval({\n txOrigin: txOrigin,\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getCoordinatorApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i != ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n address approverAddress = orders[i].feeRecipientAddress;\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", - "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", - "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", - "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool success)\n {\n assembly {\n\n // Calculate byte length of array\n let arrayByteLen := mul(mload(addressArray), 32)\n // Calculate beginning of array contents\n let arrayContentsStart := add(addressArray, 32)\n // Calclulate end of array contents\n let arrayContentsEnd := add(arrayContentsStart, arrayByteLen)\n\n // Loop through array\n for {let i:= arrayContentsStart} lt(i, arrayContentsEnd) {i := add(i, 32)} {\n\n // Load array element\n let arrayElement := mload(i)\n\n // Return true if array element equals target\n if eq(target, arrayElement) {\n // Set success to true\n success := 1\n // Break loop\n i := arrayContentsEnd\n }\n }\n }\n return success;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool success, uint256 index)\n {\n assembly {\n\n // Calculate byte length of array\n let arrayByteLen := mul(mload(addressArray), 32)\n // Calculate beginning of array contents\n let arrayContentsStart := add(addressArray, 32)\n // Calclulate end of array contents\n let arrayContentsEnd := add(arrayContentsStart, arrayByteLen)\n\n // Loop through array\n for {let i:= arrayContentsStart} lt(i, arrayContentsEnd) {i := add(i, 32)} {\n\n // Load array element\n let arrayElement := mload(i)\n\n // Return true if array element equals target\n if eq(target, arrayElement) {\n // Set success and index\n success := 1\n index := div(i, 32)\n // Break loop\n i := arrayContentsEnd\n }\n }\n }\n return (success, index);\n }\n}\n", - "src/libs/LibCoordinatorApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibCoordinatorApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 Coordinator approval message\n // keccak256(abi.encodePacked(\n // \"CoordinatorApproval(\",\n // \"address txOrigin,\",\n // \"bytes32 transactionHash,\",\n // \"bytes transactionSignature,\",\n // \"uint256 approvalExpirationTimeSeconds\",\n // \")\"\n // ));\n bytes32 constant internal EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH = 0x2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e05;\n\n struct CoordinatorApproval {\n address txOrigin; // Required signer of Ethereum transaction that is submitting approval.\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage using the domain separator of this contract.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with the domain separator of this contract.\n function getCoordinatorApprovalHash(CoordinatorApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashCoordinatorApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage with no domain separator.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with no domain separator.\n function hashCoordinatorApproval(CoordinatorApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH;\n bytes memory transactionSignature = approval.transactionSignature;\n address txOrigin = approval.txOrigin;\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Compute hash of transaction signature\n let transactionSignatureHash := keccak256(add(transactionSignature, 32), mload(transactionSignature))\n \n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), txOrigin) // txOrigin\n mstore(add(memPtr, 64), transactionHash) // transactionHash\n mstore(add(memPtr, 96), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 128), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 160)\n }\n return result;\n }\n}\n", - "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", - "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n // keccak256(abi.encodePacked(\n // \"ZeroExTransaction(\",\n // \"uint256 salt,\",\n // \"address signerAddress,\",\n // \"bytes data\",\n // \")\"\n // ));\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = 0x213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c;\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes memory data = transaction.data;\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Compute hash of data\n let dataHash := keccak256(add(data, 32), mload(data))\n \n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", - "src/mixins/MCoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ICoordinatorApprovalVerifier.sol\";\n\n\ncontract MCoordinatorApprovalVerifier is\n ICoordinatorApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", - "src/interfaces/ICoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ICoordinatorApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidCoordinatorApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n", - "src/MixinCoordinatorCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./libs/LibConstants.sol\";\nimport \"./mixins/MCoordinatorApprovalVerifier.sol\";\nimport \"./interfaces/ICoordinatorCore.sol\";\n\n\ncontract MixinCoordinatorCore is\n LibConstants,\n MCoordinatorApprovalVerifier,\n ICoordinatorCore\n{\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n {\n // Validate that the 0x transaction has been approves by each feeRecipient\n assertValidCoordinatorApprovals(\n transaction,\n txOrigin,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n\n // Execute the transaction\n EXCHANGE.executeTransaction(\n transaction.salt,\n transaction.signerAddress,\n transaction.data,\n transactionSignature\n );\n }\n}\n", - "src/interfaces/ICoordinatorCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ICoordinatorCore {\n\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public;\n}\n" - }, - "sourceTreeHashHex": "0xcb9dc4e3588f7417807cc8b901a358efbad1d37ae61794e3031c8f00ac09d41e", - "compiler": { - "name": "solc", - "version": "0.5.3+commit.10d17f24.Linux.g++", - "settings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode.object", - "evm.bytecode.sourceMap", - "evm.deployedBytecode.object", - "evm.deployedBytecode.sourceMap" - ] - } - }, - "evmVersion": "byzantium", - "remappings": [ - "@0x/contracts-utils=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-utils", - "@0x/contracts-exchange-libs=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-exchange-libs" - ] - } - }, - "networks": {} -} \ No newline at end of file + "schemaVersion": "2.0.0", + "contractName": "Coordinator", + "compilerOutput": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "bytes32" + }, + { + "name": "signature", + "type": "bytes" + } + ], + "name": "getSignerAddress", + "outputs": [ + { + "name": "signerAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "executeTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidCoordinatorApprovals", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EIP712_DOMAIN_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "components": [ + { + "name": "makerAddress", + "type": "address" + }, + { + "name": "takerAddress", + "type": "address" + }, + { + "name": "feeRecipientAddress", + "type": "address" + }, + { + "name": "senderAddress", + "type": "address" + }, + { + "name": "makerAssetAmount", + "type": "uint256" + }, + { + "name": "takerAssetAmount", + "type": "uint256" + }, + { + "name": "makerFee", + "type": "uint256" + }, + { + "name": "takerFee", + "type": "uint256" + }, + { + "name": "expirationTimeSeconds", + "type": "uint256" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "makerAssetData", + "type": "bytes" + }, + { + "name": "takerAssetData", + "type": "bytes" + } + ], + "name": "orders", + "type": "tuple[]" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTransactionOrdersApproval", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_exchange", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x60806040523480156200001157600080fd5b506040516020806200238083398101806040526200003391908101906200022b565b604080517f454950373132446f6d61696e28000000000000000000000000000000000000006020808301919091527f737472696e67206e616d652c0000000000000000000000000000000000000000602d8301527f737472696e672076657273696f6e2c000000000000000000000000000000000060398301527f6164647265737320766572696679696e67436f6e74726163740000000000000060488301527f29000000000000000000000000000000000000000000000000000000000000006061830152825180830360420181526062830180855281519183019190912060a28401855260179091527f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000060829093019290925282518084018452600581527f312e302e30000000000000000000000000000000000000000000000000000000908201528251808201929092527f626d101e477fd17dd52afb3f9ad9eb016bf60f6e377877f34e8f3ea84c930236828401527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060830152306080808401919091528351808403909101815260a0909201909252805191012060005560018054600160a060020a031916600160a060020a039290921691909117905562000273565b600062000224825162000260565b9392505050565b6000602082840312156200023e57600080fd5b60006200024c848462000216565b949350505050565b600160a060020a031690565b60006200026d8262000254565b92915050565b6120fd80620002836000396000f3fe608060405234801561001057600080fd5b5060043610610084576000357c010000000000000000000000000000000000000000000000000000000090048063d2df07331161006d578063d2df0733146100c7578063e306f779146100da578063e3b1aa86146100ef57610084565b80630f7d8e391461008957806390c3bc3f146100b2575b600080fd5b61009c610097366004611888565b610102565b6040516100a99190611e6f565b60405180910390f35b6100c56100c036600461196e565b6104f7565b005b6100c56100d536600461196e565b6105a3565b6100e26105d4565b6040516100a99190611e7d565b6100c56100fd366004611a42565b6105da565b6000808251111515610149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f3b565b60405180910390fd5b600061015483610821565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f2b565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff6108e516565b905060006102c687602163ffffffff6108e516565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff6108e516565b9050600061041287602163ffffffff6108e516565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b92915050565b61050485858585856105a3565b6001548551602087015160408089015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361056a93909290918990600401611f5b565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050505050505050565b60606105b28660400151610930565b90506000815111156105cc576105cc8682878787876105da565b505050505050565b60005481565b3273ffffffffffffffffffffffffffffffffffffffff851614610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f0b565b600061063487610de8565b60408051600080825260208201909252845192935091905b80821461073c576000868281518110151561066357fe5b906020019060200201519050610677611220565b506040805160808101825273ffffffffffffffffffffffffffffffffffffffff8b16815260208101879052908101899052606081018290524282116106e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611edb565b60006106f382610dfb565b90506000610718828a8781518110151561070957fe5b90602001906020020151610102565b905061072a878263ffffffff610e0916565b9650506001909301925061064c915050565b5061074d823263ffffffff610e0916565b885190925060005b8082146108145789516000908b908390811061076d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561079c5761080c565b60008a828151811015156107ac57fe5b6020908102909101015160400151905060006107ce868363ffffffff610ed316565b9050801515610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e9b565b50505b600101610755565b5050505050505050505050565b600080825111151561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f1b565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061088f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eeb565b50016020015190565b60606000610944838263ffffffff610f1016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d50000000000000000000000000000000000000000000000000000000014806109d757507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610a2357507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610aad57610a30611248565b8351610a4690859060049063ffffffff610f7d16565b806020019051610a5991908101906118da565b604080516001808252818301909252919250816020015b610a78611248565b815260200190600190039081610a7057905050925080836000815181101515610a9d57fe5b6020908102909101015250610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610b3e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610b8a57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610bd657507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610c2257507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610c6e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610cba57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610cef578251610cd590849060049063ffffffff610f7d16565b806020019051610ce8919081019061184b565b9150610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610de257610d41611248565b610d49611248565b8451610d5f90869060049063ffffffff610f7d16565b806020019051610d72919081019061190f565b60408051600280825260608201909252929450909250816020015b610d95611248565b815260200190600190039081610d8d57905050935081846000815181101515610dba57fe5b602090810290910101528351819085906001908110610dd557fe5b6020908102909101015250505b50919050565b60006104f1610df683611049565b6110b7565b60006104f1610df6836110f7565b815160405160609184906020808202808401820192910182851015610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ecb565b82851115610e7457610e6d858583611156565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610ea157fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b6000602083510260208401818101815b81811015610f0657805180871415610efd57600195508291505b50602001610ee3565b5050505092915050565b600081600401835110151515610f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f4b565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eab565b8351821115610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ebb565b8282036040519080825280601f01601f191660200182016040528015611021576020820181803883390190505b5090506110426110308261121a565b8461103a8761121a565b018351611156565b9392505050565b604081810151825160209384015182519285019290922083517f213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c81529485019190915273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260608201526080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b604080820151825160208085015160608681015185519584019590952086517f2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e058152938401949094529482015292830152608082015260a09020919050565b6020811015611180576001816020036101000a038019835116818551168082178652505050611215565b8282141561118d57611215565b828211156111c75760208103905080820181840181515b828510156111bf5784518652602095860195909401936111a4565b905250611215565b60208103905080820181840183515b8186121561121057825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111d6565b855250505b505050565b60200190565b6040805160808101825260008082526020820181905260609282018390529181019190915290565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006110428235612038565b60006110428251612038565b6000601f8201831361132b57600080fd5b813561133e61133982611fcd565b611fa6565b81815260209384019390925082018360005b83811015610f06578135860161136688826114b2565b8452506020928301929190910190600101611350565b6000601f8201831361138d57600080fd5b815161139b61133982611fcd565b81815260209384019390925082018360005b83811015610f0657815186016113c38882611690565b84525060209283019291909101906001016113ad565b6000601f820183136113ea57600080fd5b81356113f861133982611fcd565b81815260209384019390925082018360005b83811015610f0657813586016114208882611547565b845250602092830192919091019060010161140a565b6000601f8201831361144757600080fd5b813561145561133982611fcd565b9150818183526020840193506020810190508385602084028201111561147a57600080fd5b60005b83811015610f06578161149088826114a6565b845250602092830192919091019060010161147d565b60006110428235612043565b6000601f820183136114c357600080fd5b81356114d161133982611fee565b915080825260208301602083018583830111156114ed57600080fd5b6114f883828461205f565b50505092915050565b6000601f8201831361151257600080fd5b815161152061133982611fee565b9150808252602083016020830185838301111561153c57600080fd5b6114f883828461206b565b6000610180828403121561155a57600080fd5b611565610180611fa6565b905060006115738484611302565b825250602061158484848301611302565b602083015250604061159884828501611302565b60408301525060606115ac84828501611302565b60608301525060806115c0848285016114a6565b60808301525060a06115d4848285016114a6565b60a08301525060c06115e8848285016114a6565b60c08301525060e06115fc848285016114a6565b60e083015250610100611611848285016114a6565b61010083015250610120611627848285016114a6565b6101208301525061014082013567ffffffffffffffff81111561164957600080fd5b611655848285016114b2565b6101408301525061016082013567ffffffffffffffff81111561167757600080fd5b611683848285016114b2565b6101608301525092915050565b600061018082840312156116a357600080fd5b6116ae610180611fa6565b905060006116bc848461130e565b82525060206116cd8484830161130e565b60208301525060406116e18482850161130e565b60408301525060606116f58482850161130e565b60608301525060806117098482850161183f565b60808301525060a061171d8482850161183f565b60a08301525060c06117318482850161183f565b60c08301525060e06117458482850161183f565b60e08301525061010061175a8482850161183f565b610100830152506101206117708482850161183f565b6101208301525061014082015167ffffffffffffffff81111561179257600080fd5b61179e84828501611501565b6101408301525061016082015167ffffffffffffffff8111156117c057600080fd5b61168384828501611501565b6000606082840312156117de57600080fd5b6117e86060611fa6565b905060006117f684846114a6565b825250602061180784848301611302565b602083015250604082013567ffffffffffffffff81111561182757600080fd5b611833848285016114b2565b60408301525092915050565b60006110428251612043565b60006020828403121561185d57600080fd5b815167ffffffffffffffff81111561187457600080fd5b6118808482850161137c565b949350505050565b6000806040838503121561189b57600080fd5b60006118a785856114a6565b925050602083013567ffffffffffffffff8111156118c457600080fd5b6118d0858286016114b2565b9150509250929050565b6000602082840312156118ec57600080fd5b815167ffffffffffffffff81111561190357600080fd5b61188084828501611690565b6000806040838503121561192257600080fd5b825167ffffffffffffffff81111561193957600080fd5b61194585828601611690565b925050602083015167ffffffffffffffff81111561196257600080fd5b6118d085828601611690565b600080600080600060a0868803121561198657600080fd5b853567ffffffffffffffff81111561199d57600080fd5b6119a9888289016117cc565b95505060206119ba88828901611302565b945050604086013567ffffffffffffffff8111156119d757600080fd5b6119e3888289016114b2565b935050606086013567ffffffffffffffff811115611a0057600080fd5b611a0c88828901611436565b925050608086013567ffffffffffffffff811115611a2957600080fd5b611a358882890161131a565b9150509295509295909350565b60008060008060008060c08789031215611a5b57600080fd5b863567ffffffffffffffff811115611a7257600080fd5b611a7e89828a016117cc565b965050602087013567ffffffffffffffff811115611a9b57600080fd5b611aa789828a016113d9565b9550506040611ab889828a01611302565b945050606087013567ffffffffffffffff811115611ad557600080fd5b611ae189828a016114b2565b935050608087013567ffffffffffffffff811115611afe57600080fd5b611b0a89828a01611436565b92505060a087013567ffffffffffffffff811115611b2757600080fd5b611b3389828a0161131a565b9150509295509295509295565b611b4981612038565b82525050565b611b4981612043565b6000611b6382612034565b808452611b7781602086016020860161206b565b611b808161209b565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b600e81527f494e56414c49445f4f524947494e000000000000000000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611b40565b602081016104f18284611b4f565b602080825281016104f181611b8d565b602080825281016104f181611bbd565b602080825281016104f181611bed565b602080825281016104f181611c1d565b602080825281016104f181611c4d565b602080825281016104f181611c7d565b602080825281016104f181611cad565b602080825281016104f181611d03565b602080825281016104f181611d33565b602080825281016104f181611d63565b602080825281016104f181611db9565b602080825281016104f181611de9565b602080825281016104f181611e19565b60808101611f698287611b4f565b611f766020830186611b40565b8181036040830152611f888185611b58565b90508181036060830152611f9c8184611b58565b9695505050505050565b60405181810167ffffffffffffffff81118282101715611fc557600080fd5b604052919050565b600067ffffffffffffffff821115611fe457600080fd5b5060209081020190565b600067ffffffffffffffff82111561200557600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612046565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561208657818101518382015260200161206e565b83811115612095576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a7230582013be4e9e281ff59b6be3d1c4c7af6075c7d255edc60be429d25841f98f287b3e6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x2380 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x33 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x22B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0x2D DUP4 ADD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0x39 DUP4 ADD MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0x48 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x61 DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB PUSH1 0x42 ADD DUP2 MSTORE PUSH1 0x62 DUP4 ADD DUP1 DUP6 MSTORE DUP2 MLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0xA2 DUP5 ADD DUP6 MSTORE PUSH1 0x17 SWAP1 SWAP2 MSTORE PUSH32 0x30782050726F746F636F6C20436F6F7264696E61746F72000000000000000000 PUSH1 0x82 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP3 ADD MSTORE DUP3 MLOAD DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0x626D101E477FD17DD52AFB3F9AD9EB016BF60F6E377877F34E8F3EA84C930236 DUP3 DUP5 ADD MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP4 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x273 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x224 DUP3 MLOAD PUSH3 0x260 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x24C DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26D DUP3 PUSH3 0x254 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x20FD DUP1 PUSH3 0x283 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xD2DF0733 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD2DF0733 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE3B1AA86 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x90C3BC3F EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1888 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E7D JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F3B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x821 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F2B JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP6 MLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x56A SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x598 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B2 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x930 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x5CC JUMPI PUSH2 0x5CC DUP7 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x5DA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST ORIGIN PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EQ PUSH2 0x629 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634 DUP8 PUSH2 0xDE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP1 DUP3 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x663 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x677 PUSH2 0x1220 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EDB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F3 DUP3 PUSH2 0xDFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x718 DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x709 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x72A DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x64C SWAP2 POP POP JUMP JUMPDEST POP PUSH2 0x74D DUP3 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST DUP9 MLOAD SWAP1 SWAP3 POP PUSH1 0x0 JUMPDEST DUP1 DUP3 EQ PUSH2 0x814 JUMPI DUP10 MLOAD PUSH1 0x0 SWAP1 DUP12 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x76D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x79C JUMPI PUSH2 0x80C JUMP JUMPDEST PUSH1 0x0 DUP11 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x7AC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x7CE DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xED3 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E9B JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x755 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x88F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EEB JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x944 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF10 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x9D7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xA23 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xAAD JUMPI PUSH2 0xA30 PUSH2 0x1248 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xA46 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xA59 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xA78 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xA70 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB3E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xB8A JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBD6 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC22 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC6E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCBA JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xCEF JUMPI DUP3 MLOAD PUSH2 0xCD5 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xCE8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x184B JUMP JUMPDEST SWAP2 POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xDE2 JUMPI PUSH2 0xD41 PUSH2 0x1248 JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1248 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xD5F SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD72 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x190F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xD95 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8D JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDBA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xDD5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x1049 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x10F7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0xE5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0xE74 JUMPI PUSH2 0xE6D DUP6 DUP6 DUP4 PUSH2 0x1156 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEA1 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD MUL PUSH1 0x20 DUP5 ADD DUP2 DUP2 ADD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP1 MLOAD DUP1 DUP8 EQ ISZERO PUSH2 0xEFD JUMPI PUSH1 0x1 SWAP6 POP DUP3 SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD PUSH2 0xEE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F4B JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1042 PUSH2 0x1030 DUP3 PUSH2 0x121A JUMP JUMPDEST DUP5 PUSH2 0x103A DUP8 PUSH2 0x121A JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x1156 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD MLOAD DUP3 MLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD PUSH32 0x213C6F636F3EA94E701C0ADF9B2624AA45A6C694F9A292C094F9A81C24B5DF4C DUP2 MSTORE SWAP5 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP7 DUP2 ADD MLOAD DUP6 MLOAD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 DUP7 MLOAD PUSH32 0x2FBCDBAA76BC7589916958AE919DFBEF04D23F6BBF26DE6FF317B32C6CC01E05 DUP2 MSTORE SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 DUP3 ADD MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 SWAP1 KECCAK256 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1180 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x118D JUMPI PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x11C7 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x11BF JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x11A4 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x1210 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x11D6 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x132B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x133E PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x1FA6 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1366 DUP9 DUP3 PUSH2 0x14B2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1350 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x139B PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x13C3 DUP9 DUP3 PUSH2 0x1690 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13F8 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1420 DUP9 DUP3 PUSH2 0x1547 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x140A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1455 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 PUSH2 0x1490 DUP9 DUP3 PUSH2 0x14A6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x147D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x14C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14D1 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x14ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x205F JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1520 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x153C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x206B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1565 PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1573 DUP5 DUP5 PUSH2 0x1302 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1584 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1598 DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x15AC DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x15C0 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x15D4 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x15E8 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x15FC DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1611 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1627 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1655 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AE PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16BC DUP5 DUP5 PUSH2 0x130E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x16CD DUP5 DUP5 DUP4 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16E1 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16F5 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1709 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x171D DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1731 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1745 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x175A DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1770 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x179E DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E8 PUSH1 0x60 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17F6 DUP5 DUP5 PUSH2 0x14A6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1807 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1833 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x137C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x189B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A7 DUP6 DUP6 PUSH2 0x14A6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1945 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A9 DUP9 DUP3 DUP10 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x19BA DUP9 DUP3 DUP10 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E3 DUP9 DUP3 DUP10 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0C DUP9 DUP3 DUP10 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A35 DUP9 DUP3 DUP10 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A7E DUP10 DUP3 DUP11 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AA7 DUP10 DUP3 DUP11 ADD PUSH2 0x13D9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1AB8 DUP10 DUP3 DUP11 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AE1 DUP10 DUP3 DUP11 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0A DUP10 DUP3 DUP11 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B33 DUP10 DUP3 DUP11 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2038 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B63 DUP3 PUSH2 0x2034 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1B77 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1B80 DUP2 PUSH2 0x209B JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F4F524947494E000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B40 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B4F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1B8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BBD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C7D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1CAD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D03 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DE9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E19 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x1F69 DUP3 DUP8 PUSH2 0x1B4F JUMP JUMPDEST PUSH2 0x1F76 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B40 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1F88 DUP2 DUP6 PUSH2 0x1B58 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1F9C DUP2 DUP5 PUSH2 0x1B58 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2005 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2046 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2086 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x206E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 SGT 0xbe 0x4e SWAP15 0x28 0x1f CREATE2 SWAP12 PUSH12 0xE3D1C4C7AF6075C7D255EDC6 SIGNEXTEND 0xe4 0x29 0xd2 PC COINBASE 0xf9 DUP16 0x28 PUSH28 0x3E6C6578706572696D656E74616CF500370000000000000000000000 ", + "sourceMap": "837:227:0:-;;;977:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;977:85:0;;;;;;;;;;;;;;;;;;;;;;1067:148:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;1067:148:10;;;;;;1057:159;;;;;;;;;1533:18;;;;;;;;;;;;;;;;;;1583:21;;;;;;;;;;;;;;;1438:214;;;;;;;;;1517:36;1438:214;;;;1567:39;1438:214;;;;1636:4;1438:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1438:214:10;;;;;;;1428:225;;;;;-1:-1:-1;1407:246:10;1067:148;830:35:8;;-1:-1:-1;;;;;;830:35:8;-1:-1:-1;;;;;830:35:8;;;;;;;;;;837:227:0;;5:122:-1;;83:39;114:6;108:13;83:39;;;74:48;68:59;-1:-1;;;68:59;134:263;;249:2;237:9;228:7;224:23;220:32;217:2;;;265:1;262;255:12;217:2;300:1;317:64;373:7;353:9;317:64;;;307:74;211:186;-1:-1;;;;211:186;404:128;-1:-1;;;;;473:54;;456:76;539:105;;608:31;633:5;608:31;;;597:42;591:53;-1:-1;;591:53;;837:227:0;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610084576000357c010000000000000000000000000000000000000000000000000000000090048063d2df07331161006d578063d2df0733146100c7578063e306f779146100da578063e3b1aa86146100ef57610084565b80630f7d8e391461008957806390c3bc3f146100b2575b600080fd5b61009c610097366004611888565b610102565b6040516100a99190611e6f565b60405180910390f35b6100c56100c036600461196e565b6104f7565b005b6100c56100d536600461196e565b6105a3565b6100e26105d4565b6040516100a99190611e7d565b6100c56100fd366004611a42565b6105da565b6000808251111515610149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f3b565b60405180910390fd5b600061015483610821565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f2b565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff6108e516565b905060006102c687602163ffffffff6108e516565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff6108e516565b9050600061041287602163ffffffff6108e516565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b92915050565b61050485858585856105a3565b6001548551602087015160408089015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361056a93909290918990600401611f5b565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050505050505050565b60606105b28660400151610930565b90506000815111156105cc576105cc8682878787876105da565b505050505050565b60005481565b3273ffffffffffffffffffffffffffffffffffffffff851614610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f0b565b600061063487610de8565b60408051600080825260208201909252845192935091905b80821461073c576000868281518110151561066357fe5b906020019060200201519050610677611220565b506040805160808101825273ffffffffffffffffffffffffffffffffffffffff8b16815260208101879052908101899052606081018290524282116106e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611edb565b60006106f382610dfb565b90506000610718828a8781518110151561070957fe5b90602001906020020151610102565b905061072a878263ffffffff610e0916565b9650506001909301925061064c915050565b5061074d823263ffffffff610e0916565b885190925060005b8082146108145789516000908b908390811061076d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561079c5761080c565b60008a828151811015156107ac57fe5b6020908102909101015160400151905060006107ce868363ffffffff610ed316565b9050801515610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e9b565b50505b600101610755565b5050505050505050505050565b600080825111151561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f1b565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061088f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eeb565b50016020015190565b60606000610944838263ffffffff610f1016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d50000000000000000000000000000000000000000000000000000000014806109d757507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610a2357507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610aad57610a30611248565b8351610a4690859060049063ffffffff610f7d16565b806020019051610a5991908101906118da565b604080516001808252818301909252919250816020015b610a78611248565b815260200190600190039081610a7057905050925080836000815181101515610a9d57fe5b6020908102909101015250610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610b3e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610b8a57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610bd657507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610c2257507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610c6e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610cba57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610cef578251610cd590849060049063ffffffff610f7d16565b806020019051610ce8919081019061184b565b9150610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610de257610d41611248565b610d49611248565b8451610d5f90869060049063ffffffff610f7d16565b806020019051610d72919081019061190f565b60408051600280825260608201909252929450909250816020015b610d95611248565b815260200190600190039081610d8d57905050935081846000815181101515610dba57fe5b602090810290910101528351819085906001908110610dd557fe5b6020908102909101015250505b50919050565b60006104f1610df683611049565b6110b7565b60006104f1610df6836110f7565b815160405160609184906020808202808401820192910182851015610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ecb565b82851115610e7457610e6d858583611156565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610ea157fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b6000602083510260208401818101815b81811015610f0657805180871415610efd57600195508291505b50602001610ee3565b5050505092915050565b600081600401835110151515610f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f4b565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eab565b8351821115610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ebb565b8282036040519080825280601f01601f191660200182016040528015611021576020820181803883390190505b5090506110426110308261121a565b8461103a8761121a565b018351611156565b9392505050565b604081810151825160209384015182519285019290922083517f213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c81529485019190915273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260608201526080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b604080820151825160208085015160608681015185519584019590952086517f2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e058152938401949094529482015292830152608082015260a09020919050565b6020811015611180576001816020036101000a038019835116818551168082178652505050611215565b8282141561118d57611215565b828211156111c75760208103905080820181840181515b828510156111bf5784518652602095860195909401936111a4565b905250611215565b60208103905080820181840183515b8186121561121057825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111d6565b855250505b505050565b60200190565b6040805160808101825260008082526020820181905260609282018390529181019190915290565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006110428235612038565b60006110428251612038565b6000601f8201831361132b57600080fd5b813561133e61133982611fcd565b611fa6565b81815260209384019390925082018360005b83811015610f06578135860161136688826114b2565b8452506020928301929190910190600101611350565b6000601f8201831361138d57600080fd5b815161139b61133982611fcd565b81815260209384019390925082018360005b83811015610f0657815186016113c38882611690565b84525060209283019291909101906001016113ad565b6000601f820183136113ea57600080fd5b81356113f861133982611fcd565b81815260209384019390925082018360005b83811015610f0657813586016114208882611547565b845250602092830192919091019060010161140a565b6000601f8201831361144757600080fd5b813561145561133982611fcd565b9150818183526020840193506020810190508385602084028201111561147a57600080fd5b60005b83811015610f06578161149088826114a6565b845250602092830192919091019060010161147d565b60006110428235612043565b6000601f820183136114c357600080fd5b81356114d161133982611fee565b915080825260208301602083018583830111156114ed57600080fd5b6114f883828461205f565b50505092915050565b6000601f8201831361151257600080fd5b815161152061133982611fee565b9150808252602083016020830185838301111561153c57600080fd5b6114f883828461206b565b6000610180828403121561155a57600080fd5b611565610180611fa6565b905060006115738484611302565b825250602061158484848301611302565b602083015250604061159884828501611302565b60408301525060606115ac84828501611302565b60608301525060806115c0848285016114a6565b60808301525060a06115d4848285016114a6565b60a08301525060c06115e8848285016114a6565b60c08301525060e06115fc848285016114a6565b60e083015250610100611611848285016114a6565b61010083015250610120611627848285016114a6565b6101208301525061014082013567ffffffffffffffff81111561164957600080fd5b611655848285016114b2565b6101408301525061016082013567ffffffffffffffff81111561167757600080fd5b611683848285016114b2565b6101608301525092915050565b600061018082840312156116a357600080fd5b6116ae610180611fa6565b905060006116bc848461130e565b82525060206116cd8484830161130e565b60208301525060406116e18482850161130e565b60408301525060606116f58482850161130e565b60608301525060806117098482850161183f565b60808301525060a061171d8482850161183f565b60a08301525060c06117318482850161183f565b60c08301525060e06117458482850161183f565b60e08301525061010061175a8482850161183f565b610100830152506101206117708482850161183f565b6101208301525061014082015167ffffffffffffffff81111561179257600080fd5b61179e84828501611501565b6101408301525061016082015167ffffffffffffffff8111156117c057600080fd5b61168384828501611501565b6000606082840312156117de57600080fd5b6117e86060611fa6565b905060006117f684846114a6565b825250602061180784848301611302565b602083015250604082013567ffffffffffffffff81111561182757600080fd5b611833848285016114b2565b60408301525092915050565b60006110428251612043565b60006020828403121561185d57600080fd5b815167ffffffffffffffff81111561187457600080fd5b6118808482850161137c565b949350505050565b6000806040838503121561189b57600080fd5b60006118a785856114a6565b925050602083013567ffffffffffffffff8111156118c457600080fd5b6118d0858286016114b2565b9150509250929050565b6000602082840312156118ec57600080fd5b815167ffffffffffffffff81111561190357600080fd5b61188084828501611690565b6000806040838503121561192257600080fd5b825167ffffffffffffffff81111561193957600080fd5b61194585828601611690565b925050602083015167ffffffffffffffff81111561196257600080fd5b6118d085828601611690565b600080600080600060a0868803121561198657600080fd5b853567ffffffffffffffff81111561199d57600080fd5b6119a9888289016117cc565b95505060206119ba88828901611302565b945050604086013567ffffffffffffffff8111156119d757600080fd5b6119e3888289016114b2565b935050606086013567ffffffffffffffff811115611a0057600080fd5b611a0c88828901611436565b925050608086013567ffffffffffffffff811115611a2957600080fd5b611a358882890161131a565b9150509295509295909350565b60008060008060008060c08789031215611a5b57600080fd5b863567ffffffffffffffff811115611a7257600080fd5b611a7e89828a016117cc565b965050602087013567ffffffffffffffff811115611a9b57600080fd5b611aa789828a016113d9565b9550506040611ab889828a01611302565b945050606087013567ffffffffffffffff811115611ad557600080fd5b611ae189828a016114b2565b935050608087013567ffffffffffffffff811115611afe57600080fd5b611b0a89828a01611436565b92505060a087013567ffffffffffffffff811115611b2757600080fd5b611b3389828a0161131a565b9150509295509295509295565b611b4981612038565b82525050565b611b4981612043565b6000611b6382612034565b808452611b7781602086016020860161206b565b611b808161209b565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b600e81527f494e56414c49445f4f524947494e000000000000000000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611b40565b602081016104f18284611b4f565b602080825281016104f181611b8d565b602080825281016104f181611bbd565b602080825281016104f181611bed565b602080825281016104f181611c1d565b602080825281016104f181611c4d565b602080825281016104f181611c7d565b602080825281016104f181611cad565b602080825281016104f181611d03565b602080825281016104f181611d33565b602080825281016104f181611d63565b602080825281016104f181611db9565b602080825281016104f181611de9565b602080825281016104f181611e19565b60808101611f698287611b4f565b611f766020830186611b40565b8181036040830152611f888185611b58565b90508181036060830152611f9c8184611b58565b9695505050505050565b60405181810167ffffffffffffffff81118282101715611fc557600080fd5b604052919050565b600067ffffffffffffffff821115611fe457600080fd5b5060209081020190565b600067ffffffffffffffff82111561200557600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612046565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561208657818101518382015260200161206e565b83811115612095576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a7230582013be4e9e281ff59b6be3d1c4c7af6075c7d255edc60be429d25841f98f287b3e6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xD2DF0733 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD2DF0733 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE3B1AA86 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x90C3BC3F EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1888 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E7D JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F3B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x821 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F2B JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP6 MLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x56A SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x598 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B2 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x930 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x5CC JUMPI PUSH2 0x5CC DUP7 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x5DA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST ORIGIN PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EQ PUSH2 0x629 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634 DUP8 PUSH2 0xDE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP1 DUP3 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x663 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x677 PUSH2 0x1220 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EDB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F3 DUP3 PUSH2 0xDFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x718 DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x709 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x72A DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x64C SWAP2 POP POP JUMP JUMPDEST POP PUSH2 0x74D DUP3 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST DUP9 MLOAD SWAP1 SWAP3 POP PUSH1 0x0 JUMPDEST DUP1 DUP3 EQ PUSH2 0x814 JUMPI DUP10 MLOAD PUSH1 0x0 SWAP1 DUP12 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x76D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x79C JUMPI PUSH2 0x80C JUMP JUMPDEST PUSH1 0x0 DUP11 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x7AC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x7CE DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xED3 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E9B JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x755 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x88F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EEB JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x944 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF10 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x9D7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xA23 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xAAD JUMPI PUSH2 0xA30 PUSH2 0x1248 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xA46 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xA59 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xA78 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xA70 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB3E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xB8A JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBD6 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC22 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC6E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCBA JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xCEF JUMPI DUP3 MLOAD PUSH2 0xCD5 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xCE8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x184B JUMP JUMPDEST SWAP2 POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xDE2 JUMPI PUSH2 0xD41 PUSH2 0x1248 JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1248 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xD5F SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD72 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x190F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xD95 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8D JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDBA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xDD5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x1049 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x10F7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0xE5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0xE74 JUMPI PUSH2 0xE6D DUP6 DUP6 DUP4 PUSH2 0x1156 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEA1 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD MUL PUSH1 0x20 DUP5 ADD DUP2 DUP2 ADD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP1 MLOAD DUP1 DUP8 EQ ISZERO PUSH2 0xEFD JUMPI PUSH1 0x1 SWAP6 POP DUP3 SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD PUSH2 0xEE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F4B JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1042 PUSH2 0x1030 DUP3 PUSH2 0x121A JUMP JUMPDEST DUP5 PUSH2 0x103A DUP8 PUSH2 0x121A JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x1156 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD MLOAD DUP3 MLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD PUSH32 0x213C6F636F3EA94E701C0ADF9B2624AA45A6C694F9A292C094F9A81C24B5DF4C DUP2 MSTORE SWAP5 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP7 DUP2 ADD MLOAD DUP6 MLOAD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 DUP7 MLOAD PUSH32 0x2FBCDBAA76BC7589916958AE919DFBEF04D23F6BBF26DE6FF317B32C6CC01E05 DUP2 MSTORE SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 DUP3 ADD MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 SWAP1 KECCAK256 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1180 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x118D JUMPI PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x11C7 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x11BF JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x11A4 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x1210 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x11D6 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x132B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x133E PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x1FA6 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1366 DUP9 DUP3 PUSH2 0x14B2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1350 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x139B PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x13C3 DUP9 DUP3 PUSH2 0x1690 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13F8 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1420 DUP9 DUP3 PUSH2 0x1547 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x140A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1455 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 PUSH2 0x1490 DUP9 DUP3 PUSH2 0x14A6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x147D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x14C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14D1 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x14ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x205F JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1520 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x153C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x206B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1565 PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1573 DUP5 DUP5 PUSH2 0x1302 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1584 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1598 DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x15AC DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x15C0 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x15D4 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x15E8 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x15FC DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1611 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1627 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1655 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AE PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16BC DUP5 DUP5 PUSH2 0x130E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x16CD DUP5 DUP5 DUP4 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16E1 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16F5 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1709 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x171D DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1731 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1745 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x175A DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1770 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x179E DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E8 PUSH1 0x60 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17F6 DUP5 DUP5 PUSH2 0x14A6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1807 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1833 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x137C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x189B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A7 DUP6 DUP6 PUSH2 0x14A6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1945 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A9 DUP9 DUP3 DUP10 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x19BA DUP9 DUP3 DUP10 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E3 DUP9 DUP3 DUP10 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0C DUP9 DUP3 DUP10 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A35 DUP9 DUP3 DUP10 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A7E DUP10 DUP3 DUP11 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AA7 DUP10 DUP3 DUP11 ADD PUSH2 0x13D9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1AB8 DUP10 DUP3 DUP11 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AE1 DUP10 DUP3 DUP11 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0A DUP10 DUP3 DUP11 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B33 DUP10 DUP3 DUP11 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2038 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B63 DUP3 PUSH2 0x2034 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1B77 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1B80 DUP2 PUSH2 0x209B JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F4F524947494E000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B40 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B4F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1B8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BBD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C7D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1CAD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D03 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DE9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E19 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x1F69 DUP3 DUP8 PUSH2 0x1B4F JUMP JUMPDEST PUSH2 0x1F76 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B40 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1F88 DUP2 DUP6 PUSH2 0x1B58 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1F9C DUP2 DUP5 PUSH2 0x1B58 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2005 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2046 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2086 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x206E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 SGT 0xbe 0x4e SWAP15 0x28 0x1f CREATE2 SWAP12 PUSH12 0xE3D1C4C7AF6075C7D255EDC6 SIGNEXTEND 0xe4 0x29 0xd2 PC COINBASE 0xf9 DUP16 0x28 PUSH28 0x3E6C6578706572696D656E74616CF500370000000000000000000000 ", + "sourceMap": "837:227:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;837:227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:3;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1627:801:2;;;;;;;;;:::i;:::-;;2108:913:1;;;;;;;;;:::i;1323:33:10:-;;;:::i;:::-;;;;;;;;3713:2773:1;;;;;;;;;:::i;988:2549:3:-;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:3;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:3;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:3;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:3;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:3;;;;;;-1:-1:-1;2510:20:3;;-1:-1:-1;;;;;;2510:20:3;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:3;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:3;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:3;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:3;3499:31;;;;;;;;;;;988:2549;;;;;:::o;1627:801:2:-;2008:197;2053:11;2078:8;2100:20;2134:29;2177:18;2008:31;:197::i;:::-;2251:8;;2292:16;;2322:25;;;;2361:16;;;;;2251:170;;;;;:8;;;;;:27;;:170;;2292:16;;2322:25;;2391:20;;2251:170;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2251:170:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2251:170:2;;;;1627:801;;;;;:::o;2108:913:1:-;2511:30;2544:38;2565:11;:16;;;2544:20;:38::i;:::-;2511:71;;2669:1;2653:6;:13;:17;2649:366;;;2754:250;2808:11;2837:6;2861:8;2887:20;2925:29;2972:18;2754:36;:250::i;:::-;2108:913;;;;;;:::o;1323:33:10:-;;;;:::o;3713:2773:1:-;4182:9;:21;;;;4161:82;;;;;;;;;;;;;;4285:23;4311:31;4330:11;4311:18;:31::i;:::-;4445:16;;;4459:1;4445:16;;;;;;;;;4499:25;;4285:57;;-1:-1:-1;4445:16:1;4499:25;4534:1151;4554:21;;;4534:1151;;4635:44;4682:29;4712:1;4682:32;;;;;;;;;;;;;;;;;;4635:79;;4728:35;;:::i;:::-;-1:-1:-1;4766:266:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5220:15;5181:54;;5094:191;;;;;;;;;;;;;;5364:20;5387:36;5414:8;5387:26;:36::i;:::-;5364:59;;5437:29;5469:53;5486:12;5500:18;5519:1;5500:21;;;;;;;;;;;;;;;;;;5469:16;:53::i;:::-;5437:85;-1:-1:-1;5621:53:1;:23;5437:85;5621:53;:30;:53;:::i;:::-;5595:79;-1:-1:-1;;4577:3:1;;;;;-1:-1:-1;4534:1151:1;;-1:-1:-1;;4534:1151:1;;-1:-1:-1;5801:41:1;:23;5832:9;5801:41;:30;:41;:::i;:::-;5884:13;;5775:67;;-1:-1:-1;5861:20:1;5907:573;5927:17;;;5907:573;;6043:9;;6078:1;;6043:6;;6050:1;;6043:9;;;;;;;;;;;;;;:23;;;:37;;;6039:84;;;6100:8;;6039:84;6214:23;6240:6;6247:1;6240:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;6283:20:1;6306:49;:23;6240:29;6306:49;:32;:49;:::i;:::-;6283:72;;6394:15;6369:100;;;;;;;;;;;;;;;;5907:573;;;5946:3;;5907:573;;;;3713:2773;;;;;;;;;;:::o;8315:448:22:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:22;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:22;13631:2;13729:13;13723:20;;13292:490::o;6698:1760:1:-;6794:30;6840:15;6858:18;:4;6840:15;6858:18;:15;:18;:::i;:::-;6840:36;-1:-1:-1;6903:31:1;;;6915:19;6903:31;;:87;;-1:-1:-1;6950:40:1;;;6962:28;6950:40;6903:87;:142;;;-1:-1:-1;7006:39:1;;;7018:27;7006:39;6903:142;6886:1543;;;7106:27;;:::i;:::-;7179:11;;7165:26;;7179:4;;7176:1;;7165:26;:10;:26;:::i;:::-;7137:102;;;;;;;;;;;;;;7262:23;;;7283:1;7262:23;;;;;;;;;7105:134;;-1:-1:-1;7262:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7253:32;;7311:5;7299:6;7306:1;7299:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6886:1543:1;;;7350:38;;;7362:26;7350:38;;:101;;-1:-1:-1;7404:47:1;;;7416:35;7404:47;7350:101;:163;;;-1:-1:-1;7467:46:1;;;7479:34;7467:46;7350:163;:217;;;-1:-1:-1;7529:38:1;;;7541:26;7529:38;7350:217;:280;;;-1:-1:-1;7583:47:1;;;7595:35;7583:47;7350:280;:335;;;-1:-1:-1;7646:39:1;;;7658:27;7646:39;7350:335;:399;;;-1:-1:-1;7701:48:1;;;7713:36;7701:48;7350:399;7333:1096;;;7898:11;;7884:26;;7898:4;;7895:1;;7884:26;:10;:26;:::i;:::-;7856:104;;;;;;;;;;;;;;7845:115;;7333:1096;;;7981:33;;;7993:21;7981:33;7977:452;;;8075:31;;:::i;:::-;8108:32;;:::i;:::-;8186:11;;8172:26;;8186:4;;8183:1;;8172:26;:10;:26;:::i;:::-;8144:118;;;;;;;;;;;;;;8324:23;;;8345:1;8324:23;;;;;;;;;8074:188;;-1:-1:-1;8074:188:1;;-1:-1:-1;8324:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8315:32;;8373:9;8361:6;8368:1;8361:9;;;;;;;;;;;;;;;;;;:21;8396:9;;8408:10;;8396:6;;8403:1;;8396:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7977:452:1;-1:-1:-1;6698:1760:1;;;:::o;1602:406:11:-;1715:23;1916:53;1934:34;1956:11;1934:21;:34::i;:::-;1916:17;:53::i;2006:259:9:-;2126:20;2177:52;2195:33;2219:8;2195:23;:33::i;1089:2103:21:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:21;;-1:-1:-1;;;;;1089:2103:21;;;;:::o;3431:1034::-;3543:12;3686:2;3671:12;3665:19;3661:28;3799:2;3785:12;3781:21;3911:12;3891:18;3887:37;3985:18;3972:453;4011:16;4008:1;4005:23;3972:453;;;4130:1;4124:8;4226:12;4218:6;4215:24;4212:2;;;4316:1;4305:12;;4377:16;4372:21;;4212:2;-1:-1:-1;4042:2:21;4035:10;3972:453;;;-1:-1:-1;;;;3431:1034:21;;;;:::o;15595:687:22:-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:22;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:22;87:34:-1;135:17;;-1:-1;6890:20:22;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;2255:1419:11:-;2489:16;;;;;2530;;2580:25;;;;;3004:11;;2989:13;;;2979:37;;;;3088:9;;992:66;3111:26;;3237:15;;;3230:29;;;;3382:42;3363:62;;;3346:15;;;3339:87;;;;2469:17;3464:15;;3457:33;3631:3;3613:22;;;2255:1419::o;1856:924:10:-;1950:14;2007:18;2319:2;2313:9;2351:66;2336:82;;2468:1;2456:14;;2449:40;;;;2586:2;2574:15;;2567:35;;;;2738:2;2720:21;;;1856:924::o;2605:1613:9:-;2858:29;;;;;2916:17;;2969:24;;;;;2822:33;3043:38;;;;3537:27;;3506:29;;;3496:69;;;;3641:9;;1085:66;3664:26;;3758:15;;;3751:33;;;;3839:15;;;3832:40;3927:15;;;3920:49;4036:3;4024:16;;4017:55;4175:3;4157:22;;2605:1613;;;:::o;1808:4337:22:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:22;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:22;1808:4337;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;837:227:0:-;;;;;;;;;-1:-1:-1;837:227:0;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1283;;;;;;12561:3;12549:9;12540:7;12536:23;12532:33;12529:2;;;12578:1;12575;12568:12;12529:2;12613:31;;12664:18;12653:30;;12650:2;;;12696:1;12693;12686:12;12650:2;12716:87;12795:7;12786:6;12775:9;12771:22;12716:87;;;12706:97;;12592:217;12840:2;12858:53;12903:7;12894:6;12883:9;12879:22;12858:53;;;12848:63;;12819:98;12976:2;12965:9;12961:18;12948:32;13000:18;12992:6;12989:30;12986:2;;;13032:1;13029;13022:12;12986:2;13052:62;13106:7;13097:6;13086:9;13082:22;13052:62;;;13042:72;;12927:193;13179:2;13168:9;13164:18;13151:32;13203:18;13195:6;13192:30;13189:2;;;13235:1;13232;13225:12;13189:2;13255:78;13325:7;13316:6;13305:9;13301:22;13255:78;;;13245:88;;13130:209;13398:3;13387:9;13383:19;13370:33;13423:18;13415:6;13412:30;13409:2;;;13455:1;13452;13445:12;13409:2;13475:83;13550:7;13541:6;13530:9;13526:22;13475:83;;;13465:93;;13349:215;12523:1051;;;;;;;;;13581:1583;;;;;;;13912:3;13900:9;13891:7;13887:23;13883:33;13880:2;;;13929:1;13926;13919:12;13880:2;13964:31;;14015:18;14004:30;;14001:2;;;14047:1;14044;14037:12;14001:2;14067:87;14146:7;14137:6;14126:9;14122:22;14067:87;;;14057:97;;13943:217;14219:2;14208:9;14204:18;14191:32;14243:18;14235:6;14232:30;14229:2;;;14275:1;14272;14265:12;14229:2;14295:97;14384:7;14375:6;14364:9;14360:22;14295:97;;;14285:107;;14170:228;14429:2;14447:53;14492:7;14483:6;14472:9;14468:22;14447:53;;;14437:63;;14408:98;14565:2;14554:9;14550:18;14537:32;14589:18;14581:6;14578:30;14575:2;;;14621:1;14618;14611:12;14575:2;14641:62;14695:7;14686:6;14675:9;14671:22;14641:62;;;14631:72;;14516:193;14768:3;14757:9;14753:19;14740:33;14793:18;14785:6;14782:30;14779:2;;;14825:1;14822;14815:12;14779:2;14845:78;14915:7;14906:6;14895:9;14891:22;14845:78;;;14835:88;;14719:210;14988:3;14977:9;14973:19;14960:33;15013:18;15005:6;15002:30;14999:2;;;15045:1;15042;15035:12;14999:2;15065:83;15140:7;15131:6;15120:9;15116:22;15065:83;;;15055:93;;14939:215;13874:1290;;;;;;;;;15171:120;15254:31;15279:5;15254:31;;;15249:3;15242:44;15236:55;;;15298:120;15381:31;15406:5;15381:31;;15425:307;;15535:38;15567:5;15535:38;;;15590:6;15585:3;15578:19;15602:63;15658:6;15651:4;15646:3;15642:14;15635:4;15628:5;15624:16;15602:63;;;15697:29;15719:6;15697:29;;;15677:50;;;15690:4;15677:50;;15515:217;-1:-1;;;15515:217;16046:306;16211:2;16199:15;;16248:66;16243:2;16234:12;;16227:88;16343:2;16334:12;;16192:160;16361:306;16526:2;16514:15;;16563:66;16558:2;16549:12;;16542:88;16658:2;16649:12;;16507:160;16676:306;16841:2;16829:15;;16878:66;16873:2;16864:12;;16857:88;16973:2;16964:12;;16822:160;16991:306;17156:2;17144:15;;17193:66;17188:2;17179:12;;17172:88;17288:2;17279:12;;17137:160;17306:306;17471:2;17459:15;;17508:66;17503:2;17494:12;;17487:88;17603:2;17594:12;;17452:160;17621:306;17786:2;17774:15;;17823:66;17818:2;17809:12;;17802:88;17918:2;17909:12;;17767:160;17936:407;18101:2;18089:15;;18138:66;18133:2;18124:12;;18117:88;18239:66;18234:2;18225:12;;18218:88;18334:2;18325:12;;18082:261;18352:306;18517:2;18505:15;;18554:66;18549:2;18540:12;;18533:88;18649:2;18640:12;;18498:160;18667:306;18832:2;18820:15;;18869:66;18864:2;18855:12;;18848:88;18964:2;18955:12;;18813:160;18982:407;19147:2;19135:15;;19184:66;19179:2;19170:12;;19163:88;19285:66;19280:2;19271:12;;19264:88;19380:2;19371:12;;19128:261;19398:306;19563:2;19551:15;;19600:66;19595:2;19586:12;;19579:88;19695:2;19686:12;;19544:160;19713:306;19878:2;19866:15;;19915:66;19910:2;19901:12;;19894:88;20010:2;20001:12;;19859:160;20028:407;20193:2;20181:15;;20230:66;20225:2;20216:12;;20209:88;20331:66;20326:2;20317:12;;20310:88;20426:2;20417:12;;20174:261;20570:213;20688:2;20673:18;;20702:71;20677:9;20746:6;20702:71;;20790:213;20908:2;20893:18;;20922:71;20897:9;20966:6;20922:71;;21010:407;21201:2;21215:47;;;21186:18;;21276:131;21186:18;21276:131;;21424:407;21615:2;21629:47;;;21600:18;;21690:131;21600:18;21690:131;;21838:407;22029:2;22043:47;;;22014:18;;22104:131;22014:18;22104:131;;22252:407;22443:2;22457:47;;;22428:18;;22518:131;22428:18;22518:131;;22666:407;22857:2;22871:47;;;22842:18;;22932:131;22842:18;22932:131;;23080:407;23271:2;23285:47;;;23256:18;;23346:131;23256:18;23346:131;;23494:407;23685:2;23699:47;;;23670:18;;23760:131;23670:18;23760:131;;23908:407;24099:2;24113:47;;;24084:18;;24174:131;24084:18;24174:131;;24322:407;24513:2;24527:47;;;24498:18;;24588:131;24498:18;24588:131;;24736:407;24927:2;24941:47;;;24912:18;;25002:131;24912:18;25002:131;;25150:407;25341:2;25355:47;;;25326:18;;25416:131;25326:18;25416:131;;25564:407;25755:2;25769:47;;;25740:18;;25830:131;25740:18;25830:131;;25978:407;26169:2;26183:47;;;26154:18;;26244:131;26154:18;26244:131;;26392:707;26626:3;26611:19;;26641:71;26615:9;26685:6;26641:71;;;26723:72;26791:2;26780:9;26776:18;26767:6;26723:72;;;26843:9;26837:4;26833:20;26828:2;26817:9;26813:18;26806:48;26868:72;26935:4;26926:6;26868:72;;;26860:80;;26988:9;26982:4;26978:20;26973:2;26962:9;26958:18;26951:48;27013:76;27084:4;27075:6;27013:76;;;27005:84;26597:502;-1:-1;;;;;;26597:502;27106:256;27168:2;27162:9;27194:17;;;27269:18;27254:34;;27290:22;;;27251:62;27248:2;;;27326:1;27323;27316:12;27248:2;27342;27335:22;27146:216;;-1:-1;27146:216;27369:263;;27533:18;27525:6;27522:30;27519:2;;;27565:1;27562;27555:12;27519:2;-1:-1;27594:4;27582:17;;;27612:15;;27456:176;28468:254;;28607:18;28599:6;28596:30;28593:2;;;28639:1;28636;28629:12;28593:2;-1:-1;28712:4;28683;28660:17;;;;28679:9;28656:33;28702:15;;28530:192;28994:87;29064:12;;29048:33;29186:105;;29255:31;29280:5;29255:31;;29298:79;29367:5;29350:27;29384:128;29464:42;29453:54;;29436:76;29890:145;29971:6;29966:3;29961;29948:30;-1:-1;30027:1;30009:16;;30002:27;29941:94;30044:268;30109:1;30116:101;30130:6;30127:1;30124:13;30116:101;;;30197:11;;;30191:18;30178:11;;;30171:39;30152:2;30145:10;30116:101;;;30232:6;30229:1;30226:13;30223:2;;;30297:1;30288:6;30283:3;30279:16;30272:27;30223:2;30093:219;;;;;30320:97;30408:2;30388:14;30404:7;30384:28;;30368:49" + } + } + }, + "sources": { + "src/Coordinator.sol": { + "id": 0 + }, + "src/libs/LibConstants.sol": { + "id": 8 + }, + "src/interfaces/ITransactions.sol": { + "id": 7 + }, + "src/MixinSignatureValidator.sol": { + "id": 3 + }, + "@0x/contracts-utils/contracts/src/LibBytes.sol": { + "id": 22 + }, + "src/mixins/MSignatureValidator.sol": { + "id": 13 + }, + "src/interfaces/ISignatureValidator.sol": { + "id": 6 + }, + "src/MixinCoordinatorApprovalVerifier.sol": { + "id": 1 + }, + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { + "id": 19 + }, + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { + "id": 20 + }, + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { + "id": 18 + }, + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { + "id": 21 + }, + "src/libs/LibCoordinatorApproval.sol": { + "id": 9 + }, + "src/libs/LibEIP712Domain.sol": { + "id": 10 + }, + "src/libs/LibZeroExTransaction.sol": { + "id": 11 + }, + "src/mixins/MCoordinatorApprovalVerifier.sol": { + "id": 12 + }, + "src/interfaces/ICoordinatorApprovalVerifier.sol": { + "id": 4 + }, + "src/MixinCoordinatorCore.sol": { + "id": 2 + }, + "src/interfaces/ICoordinatorCore.sol": { + "id": 5 + } + }, + "sourceCodes": { + "src/Coordinator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibConstants.sol\";\nimport \"./MixinSignatureValidator.sol\";\nimport \"./MixinCoordinatorApprovalVerifier.sol\";\nimport \"./MixinCoordinatorCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract Coordinator is\n LibConstants,\n MixinSignatureValidator,\n MixinCoordinatorApprovalVerifier,\n MixinCoordinatorCore\n{\n constructor (address _exchange)\n public\n LibConstants(_exchange)\n {}\n}\n", + "src/libs/LibConstants.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ITransactions.sol\";\n\n\ncontract LibConstants {\n\n // solhint-disable-next-line var-name-mixedcase\n ITransactions internal EXCHANGE;\n\n constructor (address _exchange)\n public\n {\n EXCHANGE = ITransactions(_exchange);\n }\n}\n", + "src/interfaces/ITransactions.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\npragma solidity ^0.5.3;\n\n\ncontract ITransactions {\n\n /// @dev Executes an exchange method call in the context of signer.\n /// @param salt Arbitrary number to ensure uniqueness of transaction hash.\n /// @param signerAddress Address of transaction signer.\n /// @param data AbiV2 encoded calldata.\n /// @param signature Proof of signer transaction by signer.\n function executeTransaction(\n uint256 salt,\n address signerAddress,\n bytes calldata data,\n bytes calldata signature\n )\n external;\n}\n", + "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", + "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", + "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", + "src/MixinCoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibCoordinatorApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MCoordinatorApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinCoordinatorApprovalVerifier is\n LibExchangeSelectors,\n LibCoordinatorApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MCoordinatorApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidCoordinatorApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n txOrigin,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Verify that Ethereum tx signer is the same as the approved txOrigin\n require(\n tx.origin == txOrigin,\n \"INVALID_ORIGIN\"\n );\n\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i != signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n CoordinatorApproval memory approval = CoordinatorApproval({\n txOrigin: txOrigin,\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getCoordinatorApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i != ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n address approverAddress = orders[i].feeRecipientAddress;\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool success)\n {\n assembly {\n\n // Calculate byte length of array\n let arrayByteLen := mul(mload(addressArray), 32)\n // Calculate beginning of array contents\n let arrayContentsStart := add(addressArray, 32)\n // Calclulate end of array contents\n let arrayContentsEnd := add(arrayContentsStart, arrayByteLen)\n\n // Loop through array\n for {let i:= arrayContentsStart} lt(i, arrayContentsEnd) {i := add(i, 32)} {\n\n // Load array element\n let arrayElement := mload(i)\n\n // Return true if array element equals target\n if eq(target, arrayElement) {\n // Set success to true\n success := 1\n // Break loop\n i := arrayContentsEnd\n }\n }\n }\n return success;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool success, uint256 index)\n {\n assembly {\n\n // Calculate byte length of array\n let arrayByteLen := mul(mload(addressArray), 32)\n // Calculate beginning of array contents\n let arrayContentsStart := add(addressArray, 32)\n // Calclulate end of array contents\n let arrayContentsEnd := add(arrayContentsStart, arrayByteLen)\n\n // Loop through array\n for {let i:= arrayContentsStart} lt(i, arrayContentsEnd) {i := add(i, 32)} {\n\n // Load array element\n let arrayElement := mload(i)\n\n // Return true if array element equals target\n if eq(target, arrayElement) {\n // Set success and index\n success := 1\n index := div(i, 32)\n // Break loop\n i := arrayContentsEnd\n }\n }\n }\n return (success, index);\n }\n}\n", + "src/libs/LibCoordinatorApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibCoordinatorApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 Coordinator approval message\n // keccak256(abi.encodePacked(\n // \"CoordinatorApproval(\",\n // \"address txOrigin,\",\n // \"bytes32 transactionHash,\",\n // \"bytes transactionSignature,\",\n // \"uint256 approvalExpirationTimeSeconds\",\n // \")\"\n // ));\n bytes32 constant internal EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH = 0x2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e05;\n\n struct CoordinatorApproval {\n address txOrigin; // Required signer of Ethereum transaction that is submitting approval.\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage using the domain separator of this contract.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with the domain separator of this contract.\n function getCoordinatorApprovalHash(CoordinatorApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashCoordinatorApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage with no domain separator.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with no domain separator.\n function hashCoordinatorApproval(CoordinatorApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH;\n bytes memory transactionSignature = approval.transactionSignature;\n address txOrigin = approval.txOrigin;\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Compute hash of transaction signature\n let transactionSignatureHash := keccak256(add(transactionSignature, 32), mload(transactionSignature))\n \n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), txOrigin) // txOrigin\n mstore(add(memPtr, 64), transactionHash) // transactionHash\n mstore(add(memPtr, 96), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 128), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 160)\n }\n return result;\n }\n}\n", + "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n // keccak256(abi.encodePacked(\n // \"ZeroExTransaction(\",\n // \"uint256 salt,\",\n // \"address signerAddress,\",\n // \"bytes data\",\n // \")\"\n // ));\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = 0x213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c;\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes memory data = transaction.data;\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Compute hash of data\n let dataHash := keccak256(add(data, 32), mload(data))\n \n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/mixins/MCoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ICoordinatorApprovalVerifier.sol\";\n\n\ncontract MCoordinatorApprovalVerifier is\n ICoordinatorApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", + "src/interfaces/ICoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ICoordinatorApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidCoordinatorApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n", + "src/MixinCoordinatorCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./libs/LibConstants.sol\";\nimport \"./mixins/MCoordinatorApprovalVerifier.sol\";\nimport \"./interfaces/ICoordinatorCore.sol\";\n\n\ncontract MixinCoordinatorCore is\n LibConstants,\n MCoordinatorApprovalVerifier,\n ICoordinatorCore\n{\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n {\n // Validate that the 0x transaction has been approves by each feeRecipient\n assertValidCoordinatorApprovals(\n transaction,\n txOrigin,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n\n // Execute the transaction\n EXCHANGE.executeTransaction(\n transaction.salt,\n transaction.signerAddress,\n transaction.data,\n transactionSignature\n );\n }\n}\n", + "src/interfaces/ICoordinatorCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ICoordinatorCore {\n\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public;\n}\n" + }, + "sourceTreeHashHex": "0xcb9dc4e3588f7417807cc8b901a358efbad1d37ae61794e3031c8f00ac09d41e", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "evmVersion": "byzantium", + "remappings": [ + "@0x/contracts-utils=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} diff --git a/python-packages/contract_artifacts/CoordinatorRegistry.json b/python-packages/contract_artifacts/CoordinatorRegistry.json index 837e3b7046..2d4c89b249 100644 --- a/python-packages/contract_artifacts/CoordinatorRegistry.json +++ b/python-packages/contract_artifacts/CoordinatorRegistry.json @@ -1,122 +1,122 @@ { - "schemaVersion": "2.0.0", - "contractName": "CoordinatorRegistry", - "compilerOutput": { - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "coordinatorEndpoint", - "type": "string" - } - ], - "name": "setCoordinatorEndpoint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "coordinatorOperator", - "type": "address" - } - ], - "name": "getCoordinatorEndpoint", - "outputs": [ - { - "name": "coordinatorEndpoint", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "coordinatorOperator", - "type": "address" - }, - { - "indexed": false, - "name": "coordinatorEndpoint", - "type": "string" - } - ], - "name": "CoordinatorEndpointSet", - "type": "event" - } - ], - "evm": { - "bytecode": { - "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b506104b5806100206000396000f3fe608060405234801561001057600080fd5b5060043610610052577c010000000000000000000000000000000000000000000000000000000060003504635b2388be81146100575780636c90fedb1461006c575b600080fd5b61006a6100653660046102ff565b610095565b005b61007f61007a3660046102d9565b6100f0565b60405161008c91906103d8565b60405180910390f35b3360008181526020819052604090206100af9084846101c4565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e8184846040516100e3939291906103ae565b60405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156101b85780601f1061018d576101008083540402835291602001916101b8565b820191906000526020600020905b81548152906001019060200180831161019b57829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610223578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610250565b82800160010185558215610250579182015b82811115610250578235825591602001919060010190610235565b5061025c929150610260565b5090565b61027a91905b8082111561025c5760008155600101610266565b90565b600061028982356103ed565b9392505050565b600080601f830184136102a257600080fd5b50813567ffffffffffffffff8111156102ba57600080fd5b6020830191508360018202830111156102d257600080fd5b9250929050565b6000602082840312156102eb57600080fd5b60006102f7848461027d565b949350505050565b6000806020838503121561031257600080fd5b823567ffffffffffffffff81111561032957600080fd5b61033585828601610290565b92509250509250929050565b61034a816103ed565b82525050565b6000828452602084019350610366838584610417565b61036f83610453565b9093019392505050565b6000610384826103e9565b808452610398816020860160208601610423565b6103a181610453565b9093016020019392505050565b604081016103bc8286610341565b81810360208301526103cf818486610350565b95945050505050565b602080825281016102898184610379565b5190565b60006103f8826103fe565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561043e578181015183820152602001610426565b8381111561044d576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820d8fc8bc6ec7167e671f9f87937212d93c49d5fbe171bbdfa06c846e5ac76151b6c6578706572696d656e74616cf50037", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B5 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x52 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x5B2388BE DUP2 EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x6C90FEDB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A PUSH2 0x65 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FF JUMP JUMPDEST PUSH2 0x95 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAF SWAP1 DUP5 DUP5 PUSH2 0x1C4 JUMP JUMPDEST POP PUSH32 0xD060052768902F3EECB84B8EAE9D3A2608A1A9E60811A33968B46B8D552F266E DUP2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP7 AND ISZERO MUL ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x223 JUMPI DUP3 DUP1 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x250 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x250 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x250 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x235 JUMP JUMPDEST POP PUSH2 0x25C SWAP3 SWAP2 POP PUSH2 0x260 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x27A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x289 DUP3 CALLDATALOAD PUSH2 0x3ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP4 ADD DUP5 SGT PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F7 DUP5 DUP5 PUSH2 0x27D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x34A DUP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x366 DUP4 DUP6 DUP5 PUSH2 0x417 JUMP JUMPDEST PUSH2 0x36F DUP4 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x384 DUP3 PUSH2 0x3E9 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x398 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x423 JUMP JUMPDEST PUSH2 0x3A1 DUP2 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3BC DUP3 DUP7 PUSH2 0x341 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3CF DUP2 DUP5 DUP7 PUSH2 0x350 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x289 DUP2 DUP5 PUSH2 0x379 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8 DUP3 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x43E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xd8 0xfc DUP12 0xc6 0xec PUSH18 0x67E671F9F87937212D93C49D5FBE171BBDFA MOD 0xc8 0x46 0xe5 0xac PUSH23 0x151B6C6578706572696D656E74616CF500370000000000 ", - "sourceMap": "720:148:14:-;;;791:75;8:9:-1;5:2;;;30:1;27;20:12;5:2;791:75:14;720:148;;;;;;" - }, - "deployedBytecode": { - "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b5060043610610052577c010000000000000000000000000000000000000000000000000000000060003504635b2388be81146100575780636c90fedb1461006c575b600080fd5b61006a6100653660046102ff565b610095565b005b61007f61007a3660046102d9565b6100f0565b60405161008c91906103d8565b60405180910390f35b3360008181526020819052604090206100af9084846101c4565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e8184846040516100e3939291906103ae565b60405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156101b85780601f1061018d576101008083540402835291602001916101b8565b820191906000526020600020905b81548152906001019060200180831161019b57829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610223578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610250565b82800160010185558215610250579182015b82811115610250578235825591602001919060010190610235565b5061025c929150610260565b5090565b61027a91905b8082111561025c5760008155600101610266565b90565b600061028982356103ed565b9392505050565b600080601f830184136102a257600080fd5b50813567ffffffffffffffff8111156102ba57600080fd5b6020830191508360018202830111156102d257600080fd5b9250929050565b6000602082840312156102eb57600080fd5b60006102f7848461027d565b949350505050565b6000806020838503121561031257600080fd5b823567ffffffffffffffff81111561032957600080fd5b61033585828601610290565b92509250509250929050565b61034a816103ed565b82525050565b6000828452602084019350610366838584610417565b61036f83610453565b9093019392505050565b6000610384826103e9565b808452610398816020860160208601610423565b6103a181610453565b9093016020019392505050565b604081016103bc8286610341565b81810360208301526103cf818486610350565b95945050505050565b602080825281016102898184610379565b5190565b60006103f8826103fe565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561043e578181015183820152602001610426565b8381111561044d576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820d8fc8bc6ec7167e671f9f87937212d93c49d5fbe171bbdfa06c846e5ac76151b6c6578706572696d656e74616cf50037", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x52 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x5B2388BE DUP2 EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x6C90FEDB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A PUSH2 0x65 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FF JUMP JUMPDEST PUSH2 0x95 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAF SWAP1 DUP5 DUP5 PUSH2 0x1C4 JUMP JUMPDEST POP PUSH32 0xD060052768902F3EECB84B8EAE9D3A2608A1A9E60811A33968B46B8D552F266E DUP2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP7 AND ISZERO MUL ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x223 JUMPI DUP3 DUP1 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x250 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x250 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x250 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x235 JUMP JUMPDEST POP PUSH2 0x25C SWAP3 SWAP2 POP PUSH2 0x260 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x27A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x289 DUP3 CALLDATALOAD PUSH2 0x3ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP4 ADD DUP5 SGT PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F7 DUP5 DUP5 PUSH2 0x27D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x34A DUP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x366 DUP4 DUP6 DUP5 PUSH2 0x417 JUMP JUMPDEST PUSH2 0x36F DUP4 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x384 DUP3 PUSH2 0x3E9 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x398 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x423 JUMP JUMPDEST PUSH2 0x3A1 DUP2 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3BC DUP3 DUP7 PUSH2 0x341 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3CF DUP2 DUP5 DUP7 PUSH2 0x350 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x289 DUP2 DUP5 PUSH2 0x379 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8 DUP3 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x43E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xd8 0xfc DUP12 0xc6 0xec PUSH18 0x67E671F9F87937212D93C49D5FBE171BBDFA MOD 0xc8 0x46 0xe5 0xac PUSH23 0x151B6C6578706572696D656E74616CF500370000000000 ", - "sourceMap": "720:148:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;720:148:14;;;;;;;;;;;;;;;;;;;;;;;;1086:287:15;;;;;;;;;:::i;:::-;;1502:212;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1086:287;1204:10;1174:27;1224:41;;;;;;;;;;:63;;1268:19;;1224:63;:::i;:::-;;1302:64;1325:19;1346;;1302:64;;;;;;;;;;;;;;;;;1086:287;;;:::o;1502:212::-;1666:41;;;:20;:41;;;;;;;;;;;;1659:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:33;;1659:48;;;1666:41;1659:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:212;;;:::o;720:148:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;720:148:14;;;-1:-1:-1;720:148:14;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;145:336;;;253:4;241:17;;237:27;-1:-1;227:2;;278:1;275;268:12;227:2;-1:-1;298:20;;338:18;327:30;;324:2;;;370:1;367;360:12;324:2;404:4;396:6;392:17;380:29;;454:3;447;439:6;435:16;425:8;421:31;418:40;415:2;;;471:1;468;461:12;415:2;220:261;;;;;;489:241;;593:2;581:9;572:7;568:23;564:32;561:2;;;609:1;606;599:12;561:2;644:1;661:53;706:7;686:9;661:53;;;651:63;555:175;-1:-1;;;;555:175;737:367;;;861:2;849:9;840:7;836:23;832:32;829:2;;;877:1;874;867:12;829:2;912:31;;963:18;952:30;;949:2;;;995:1;992;985:12;949:2;1023:65;1080:7;1071:6;1060:9;1056:22;1023:65;;;1005:83;;;;891:203;823:281;;;;;;1111:120;1194:31;1219:5;1194:31;;;1189:3;1182:44;1176:55;;;1261:273;;1381:6;1376:3;1369:19;1405:4;1400:3;1396:14;1389:21;;1435:43;1471:6;1466:3;1459:5;1435:43;;;1499:29;1521:6;1499:29;;;1490:39;;;;1363:171;-1:-1;;;1363:171;1541:310;;1653:39;1686:5;1653:39;;;1709:6;1704:3;1697:19;1721:63;1777:6;1770:4;1765:3;1761:14;1754:4;1747:5;1743:16;1721:63;;;1816:29;1838:6;1816:29;;;1796:50;;;1809:4;1796:50;;1633:218;-1:-1;;;1633:218;1858:432;2034:2;2019:18;;2048:71;2023:9;2092:6;2048:71;;;2167:9;2161:4;2157:20;2152:2;2141:9;2137:18;2130:48;2192:88;2275:4;2266:6;2258;2192:88;;;2184:96;2005:285;-1:-1;;;;;2005:285;2297:301;2435:2;2449:47;;;2420:18;;2510:78;2420:18;2574:6;2510:78;;2605:92;2680:12;;2664:33;2704:105;;2773:31;2798:5;2773:31;;;2762:42;2756:53;-1:-1;;2756:53;2816:128;2896:42;2885:54;;2868:76;3064:145;3145:6;3140:3;3135;3122:30;-1:-1;3201:1;3183:16;;3176:27;3115:94;3218:268;3283:1;3290:101;3304:6;3301:1;3298:13;3290:101;;;3371:11;;;3365:18;3352:11;;;3345:39;3326:2;3319:10;3290:101;;;3406:6;3403:1;3400:13;3397:2;;;3471:1;3462:6;3457:3;3453:16;3446:27;3397:2;3267:219;;;;;3494:97;3582:2;3562:14;3578:7;3558:28;;3542:49" - } - } - }, - "sources": { - "src/registry/CoordinatorRegistry.sol": { - "id": 14 - }, - "src/registry/MixinCoordinatorRegistryCore.sol": { - "id": 15 - }, - "src/registry/interfaces/ICoordinatorRegistryCore.sol": { - "id": 16 - } - }, - "sourceCodes": { - "src/registry/CoordinatorRegistry.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\nimport \"./MixinCoordinatorRegistryCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract CoordinatorRegistry is\n MixinCoordinatorRegistryCore\n{\n constructor ()\n public\n MixinCoordinatorRegistryCore()\n {}\n}\n", - "src/registry/MixinCoordinatorRegistryCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\nimport \"./interfaces/ICoordinatorRegistryCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract MixinCoordinatorRegistryCore is\n ICoordinatorRegistryCore\n{\n // mapping from `coordinatorOperator` -> `coordinatorEndpoint`\n mapping (address => string) internal coordinatorEndpoints;\n\n /// @dev Called by a Coordinator operator to set the endpoint of their Coordinator.\n /// @param coordinatorEndpoint endpoint of the Coordinator.\n function setCoordinatorEndpoint(string calldata coordinatorEndpoint) external {\n address coordinatorOperator = msg.sender;\n coordinatorEndpoints[coordinatorOperator] = coordinatorEndpoint;\n emit CoordinatorEndpointSet(coordinatorOperator, coordinatorEndpoint);\n }\n\n /// @dev Gets the endpoint for a Coordinator.\n /// @param coordinatorOperator operator of the Coordinator endpoint.\n function getCoordinatorEndpoint(address coordinatorOperator)\n external\n view\n returns (string memory coordinatorEndpoint)\n {\n return coordinatorEndpoints[coordinatorOperator];\n }\n}\n", - "src/registry/interfaces/ICoordinatorRegistryCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\n\n// solhint-disable no-empty-blocks\ncontract ICoordinatorRegistryCore\n{\n /// @dev Emitted when a Coordinator endpoint is set.\n event CoordinatorEndpointSet(\n address coordinatorOperator,\n string coordinatorEndpoint\n );\n\n /// @dev Called by a Coordinator operator to set the endpoint of their Coordinator.\n /// @param coordinatorEndpoint endpoint of the Coordinator.\n function setCoordinatorEndpoint(string calldata coordinatorEndpoint) external;\n\n /// @dev Gets the endpoint for a Coordinator.\n /// @param coordinatorOperator operator of the Coordinator endpoint.\n function getCoordinatorEndpoint(address coordinatorOperator)\n external\n view\n returns (string memory coordinatorEndpoint);\n}\n" - }, - "sourceTreeHashHex": "0x73b5157724c2624755d003dcb560ff5732c8ae78d44b1b99ec064e8b909f8f8c", - "compiler": { - "name": "solc", - "version": "0.5.3+commit.10d17f24.Linux.g++", - "settings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode.object", - "evm.bytecode.sourceMap", - "evm.deployedBytecode.object", - "evm.deployedBytecode.sourceMap" - ] - } - }, - "evmVersion": "byzantium", - "remappings": [ - "@0x/contracts-utils=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-utils", - "@0x/contracts-exchange-libs=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-exchange-libs" - ] - } - }, - "networks": {} -} \ No newline at end of file + "schemaVersion": "2.0.0", + "contractName": "CoordinatorRegistry", + "compilerOutput": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "name": "setCoordinatorEndpoint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "coordinatorOperator", + "type": "address" + } + ], + "name": "getCoordinatorEndpoint", + "outputs": [ + { + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "coordinatorOperator", + "type": "address" + }, + { + "indexed": false, + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "name": "CoordinatorEndpointSet", + "type": "event" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b506104b5806100206000396000f3fe608060405234801561001057600080fd5b5060043610610052577c010000000000000000000000000000000000000000000000000000000060003504635b2388be81146100575780636c90fedb1461006c575b600080fd5b61006a6100653660046102ff565b610095565b005b61007f61007a3660046102d9565b6100f0565b60405161008c91906103d8565b60405180910390f35b3360008181526020819052604090206100af9084846101c4565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e8184846040516100e3939291906103ae565b60405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156101b85780601f1061018d576101008083540402835291602001916101b8565b820191906000526020600020905b81548152906001019060200180831161019b57829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610223578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610250565b82800160010185558215610250579182015b82811115610250578235825591602001919060010190610235565b5061025c929150610260565b5090565b61027a91905b8082111561025c5760008155600101610266565b90565b600061028982356103ed565b9392505050565b600080601f830184136102a257600080fd5b50813567ffffffffffffffff8111156102ba57600080fd5b6020830191508360018202830111156102d257600080fd5b9250929050565b6000602082840312156102eb57600080fd5b60006102f7848461027d565b949350505050565b6000806020838503121561031257600080fd5b823567ffffffffffffffff81111561032957600080fd5b61033585828601610290565b92509250509250929050565b61034a816103ed565b82525050565b6000828452602084019350610366838584610417565b61036f83610453565b9093019392505050565b6000610384826103e9565b808452610398816020860160208601610423565b6103a181610453565b9093016020019392505050565b604081016103bc8286610341565b81810360208301526103cf818486610350565b95945050505050565b602080825281016102898184610379565b5190565b60006103f8826103fe565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561043e578181015183820152602001610426565b8381111561044d576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820d8fc8bc6ec7167e671f9f87937212d93c49d5fbe171bbdfa06c846e5ac76151b6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B5 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x52 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x5B2388BE DUP2 EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x6C90FEDB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A PUSH2 0x65 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FF JUMP JUMPDEST PUSH2 0x95 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAF SWAP1 DUP5 DUP5 PUSH2 0x1C4 JUMP JUMPDEST POP PUSH32 0xD060052768902F3EECB84B8EAE9D3A2608A1A9E60811A33968B46B8D552F266E DUP2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP7 AND ISZERO MUL ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x223 JUMPI DUP3 DUP1 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x250 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x250 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x250 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x235 JUMP JUMPDEST POP PUSH2 0x25C SWAP3 SWAP2 POP PUSH2 0x260 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x27A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x289 DUP3 CALLDATALOAD PUSH2 0x3ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP4 ADD DUP5 SGT PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F7 DUP5 DUP5 PUSH2 0x27D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x34A DUP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x366 DUP4 DUP6 DUP5 PUSH2 0x417 JUMP JUMPDEST PUSH2 0x36F DUP4 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x384 DUP3 PUSH2 0x3E9 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x398 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x423 JUMP JUMPDEST PUSH2 0x3A1 DUP2 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3BC DUP3 DUP7 PUSH2 0x341 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3CF DUP2 DUP5 DUP7 PUSH2 0x350 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x289 DUP2 DUP5 PUSH2 0x379 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8 DUP3 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x43E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xd8 0xfc DUP12 0xc6 0xec PUSH18 0x67E671F9F87937212D93C49D5FBE171BBDFA MOD 0xc8 0x46 0xe5 0xac PUSH23 0x151B6C6578706572696D656E74616CF500370000000000 ", + "sourceMap": "720:148:14:-;;;791:75;8:9:-1;5:2;;;30:1;27;20:12;5:2;791:75:14;720:148;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610052577c010000000000000000000000000000000000000000000000000000000060003504635b2388be81146100575780636c90fedb1461006c575b600080fd5b61006a6100653660046102ff565b610095565b005b61007f61007a3660046102d9565b6100f0565b60405161008c91906103d8565b60405180910390f35b3360008181526020819052604090206100af9084846101c4565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e8184846040516100e3939291906103ae565b60405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156101b85780601f1061018d576101008083540402835291602001916101b8565b820191906000526020600020905b81548152906001019060200180831161019b57829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610223578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610250565b82800160010185558215610250579182015b82811115610250578235825591602001919060010190610235565b5061025c929150610260565b5090565b61027a91905b8082111561025c5760008155600101610266565b90565b600061028982356103ed565b9392505050565b600080601f830184136102a257600080fd5b50813567ffffffffffffffff8111156102ba57600080fd5b6020830191508360018202830111156102d257600080fd5b9250929050565b6000602082840312156102eb57600080fd5b60006102f7848461027d565b949350505050565b6000806020838503121561031257600080fd5b823567ffffffffffffffff81111561032957600080fd5b61033585828601610290565b92509250509250929050565b61034a816103ed565b82525050565b6000828452602084019350610366838584610417565b61036f83610453565b9093019392505050565b6000610384826103e9565b808452610398816020860160208601610423565b6103a181610453565b9093016020019392505050565b604081016103bc8286610341565b81810360208301526103cf818486610350565b95945050505050565b602080825281016102898184610379565b5190565b60006103f8826103fe565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561043e578181015183820152602001610426565b8381111561044d576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820d8fc8bc6ec7167e671f9f87937212d93c49d5fbe171bbdfa06c846e5ac76151b6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x52 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x5B2388BE DUP2 EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x6C90FEDB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A PUSH2 0x65 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FF JUMP JUMPDEST PUSH2 0x95 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAF SWAP1 DUP5 DUP5 PUSH2 0x1C4 JUMP JUMPDEST POP PUSH32 0xD060052768902F3EECB84B8EAE9D3A2608A1A9E60811A33968B46B8D552F266E DUP2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP7 AND ISZERO MUL ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x223 JUMPI DUP3 DUP1 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x250 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x250 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x250 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x235 JUMP JUMPDEST POP PUSH2 0x25C SWAP3 SWAP2 POP PUSH2 0x260 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x27A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x289 DUP3 CALLDATALOAD PUSH2 0x3ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP4 ADD DUP5 SGT PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F7 DUP5 DUP5 PUSH2 0x27D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x34A DUP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x366 DUP4 DUP6 DUP5 PUSH2 0x417 JUMP JUMPDEST PUSH2 0x36F DUP4 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x384 DUP3 PUSH2 0x3E9 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x398 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x423 JUMP JUMPDEST PUSH2 0x3A1 DUP2 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3BC DUP3 DUP7 PUSH2 0x341 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3CF DUP2 DUP5 DUP7 PUSH2 0x350 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x289 DUP2 DUP5 PUSH2 0x379 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8 DUP3 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x43E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xd8 0xfc DUP12 0xc6 0xec PUSH18 0x67E671F9F87937212D93C49D5FBE171BBDFA MOD 0xc8 0x46 0xe5 0xac PUSH23 0x151B6C6578706572696D656E74616CF500370000000000 ", + "sourceMap": "720:148:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;720:148:14;;;;;;;;;;;;;;;;;;;;;;;;1086:287:15;;;;;;;;;:::i;:::-;;1502:212;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1086:287;1204:10;1174:27;1224:41;;;;;;;;;;:63;;1268:19;;1224:63;:::i;:::-;;1302:64;1325:19;1346;;1302:64;;;;;;;;;;;;;;;;;1086:287;;;:::o;1502:212::-;1666:41;;;:20;:41;;;;;;;;;;;;1659:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:33;;1659:48;;;1666:41;1659:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:212;;;:::o;720:148:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;720:148:14;;;-1:-1:-1;720:148:14;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;145:336;;;253:4;241:17;;237:27;-1:-1;227:2;;278:1;275;268:12;227:2;-1:-1;298:20;;338:18;327:30;;324:2;;;370:1;367;360:12;324:2;404:4;396:6;392:17;380:29;;454:3;447;439:6;435:16;425:8;421:31;418:40;415:2;;;471:1;468;461:12;415:2;220:261;;;;;;489:241;;593:2;581:9;572:7;568:23;564:32;561:2;;;609:1;606;599:12;561:2;644:1;661:53;706:7;686:9;661:53;;;651:63;555:175;-1:-1;;;;555:175;737:367;;;861:2;849:9;840:7;836:23;832:32;829:2;;;877:1;874;867:12;829:2;912:31;;963:18;952:30;;949:2;;;995:1;992;985:12;949:2;1023:65;1080:7;1071:6;1060:9;1056:22;1023:65;;;1005:83;;;;891:203;823:281;;;;;;1111:120;1194:31;1219:5;1194:31;;;1189:3;1182:44;1176:55;;;1261:273;;1381:6;1376:3;1369:19;1405:4;1400:3;1396:14;1389:21;;1435:43;1471:6;1466:3;1459:5;1435:43;;;1499:29;1521:6;1499:29;;;1490:39;;;;1363:171;-1:-1;;;1363:171;1541:310;;1653:39;1686:5;1653:39;;;1709:6;1704:3;1697:19;1721:63;1777:6;1770:4;1765:3;1761:14;1754:4;1747:5;1743:16;1721:63;;;1816:29;1838:6;1816:29;;;1796:50;;;1809:4;1796:50;;1633:218;-1:-1;;;1633:218;1858:432;2034:2;2019:18;;2048:71;2023:9;2092:6;2048:71;;;2167:9;2161:4;2157:20;2152:2;2141:9;2137:18;2130:48;2192:88;2275:4;2266:6;2258;2192:88;;;2184:96;2005:285;-1:-1;;;;;2005:285;2297:301;2435:2;2449:47;;;2420:18;;2510:78;2420:18;2574:6;2510:78;;2605:92;2680:12;;2664:33;2704:105;;2773:31;2798:5;2773:31;;;2762:42;2756:53;-1:-1;;2756:53;2816:128;2896:42;2885:54;;2868:76;3064:145;3145:6;3140:3;3135;3122:30;-1:-1;3201:1;3183:16;;3176:27;3115:94;3218:268;3283:1;3290:101;3304:6;3301:1;3298:13;3290:101;;;3371:11;;;3365:18;3352:11;;;3345:39;3326:2;3319:10;3290:101;;;3406:6;3403:1;3400:13;3397:2;;;3471:1;3462:6;3457:3;3453:16;3446:27;3397:2;3267:219;;;;;3494:97;3582:2;3562:14;3578:7;3558:28;;3542:49" + } + } + }, + "sources": { + "src/registry/CoordinatorRegistry.sol": { + "id": 14 + }, + "src/registry/MixinCoordinatorRegistryCore.sol": { + "id": 15 + }, + "src/registry/interfaces/ICoordinatorRegistryCore.sol": { + "id": 16 + } + }, + "sourceCodes": { + "src/registry/CoordinatorRegistry.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\nimport \"./MixinCoordinatorRegistryCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract CoordinatorRegistry is\n MixinCoordinatorRegistryCore\n{\n constructor ()\n public\n MixinCoordinatorRegistryCore()\n {}\n}\n", + "src/registry/MixinCoordinatorRegistryCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\nimport \"./interfaces/ICoordinatorRegistryCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract MixinCoordinatorRegistryCore is\n ICoordinatorRegistryCore\n{\n // mapping from `coordinatorOperator` -> `coordinatorEndpoint`\n mapping (address => string) internal coordinatorEndpoints;\n\n /// @dev Called by a Coordinator operator to set the endpoint of their Coordinator.\n /// @param coordinatorEndpoint endpoint of the Coordinator.\n function setCoordinatorEndpoint(string calldata coordinatorEndpoint) external {\n address coordinatorOperator = msg.sender;\n coordinatorEndpoints[coordinatorOperator] = coordinatorEndpoint;\n emit CoordinatorEndpointSet(coordinatorOperator, coordinatorEndpoint);\n }\n\n /// @dev Gets the endpoint for a Coordinator.\n /// @param coordinatorOperator operator of the Coordinator endpoint.\n function getCoordinatorEndpoint(address coordinatorOperator)\n external\n view\n returns (string memory coordinatorEndpoint)\n {\n return coordinatorEndpoints[coordinatorOperator];\n }\n}\n", + "src/registry/interfaces/ICoordinatorRegistryCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\n\n// solhint-disable no-empty-blocks\ncontract ICoordinatorRegistryCore\n{\n /// @dev Emitted when a Coordinator endpoint is set.\n event CoordinatorEndpointSet(\n address coordinatorOperator,\n string coordinatorEndpoint\n );\n\n /// @dev Called by a Coordinator operator to set the endpoint of their Coordinator.\n /// @param coordinatorEndpoint endpoint of the Coordinator.\n function setCoordinatorEndpoint(string calldata coordinatorEndpoint) external;\n\n /// @dev Gets the endpoint for a Coordinator.\n /// @param coordinatorOperator operator of the Coordinator endpoint.\n function getCoordinatorEndpoint(address coordinatorOperator)\n external\n view\n returns (string memory coordinatorEndpoint);\n}\n" + }, + "sourceTreeHashHex": "0x73b5157724c2624755d003dcb560ff5732c8ae78d44b1b99ec064e8b909f8f8c", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "evmVersion": "byzantium", + "remappings": [ + "@0x/contracts-utils=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} From e866add4b0004630368134cf35f0e632fc1d3b14 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 21 Mar 2019 14:33:54 +0100 Subject: [PATCH 75/95] Add artifacts to python packages --- .../artifacts/Coordinator.json | 364 ++++++++++++++++++ .../artifacts/CoordinatorRegistry.json | 122 ++++++ 2 files changed, 486 insertions(+) create mode 100644 python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/Coordinator.json create mode 100644 python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/CoordinatorRegistry.json diff --git a/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/Coordinator.json b/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/Coordinator.json new file mode 100644 index 0000000000..3cc8a1fdd5 --- /dev/null +++ b/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/Coordinator.json @@ -0,0 +1,364 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "Coordinator", + "compilerOutput": { + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "bytes32" + }, + { + "name": "signature", + "type": "bytes" + } + ], + "name": "getSignerAddress", + "outputs": [ + { + "name": "signerAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "executeTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidCoordinatorApprovals", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "EIP712_DOMAIN_HASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "salt", + "type": "uint256" + }, + { + "name": "signerAddress", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "transaction", + "type": "tuple" + }, + { + "components": [ + { + "name": "makerAddress", + "type": "address" + }, + { + "name": "takerAddress", + "type": "address" + }, + { + "name": "feeRecipientAddress", + "type": "address" + }, + { + "name": "senderAddress", + "type": "address" + }, + { + "name": "makerAssetAmount", + "type": "uint256" + }, + { + "name": "takerAssetAmount", + "type": "uint256" + }, + { + "name": "makerFee", + "type": "uint256" + }, + { + "name": "takerFee", + "type": "uint256" + }, + { + "name": "expirationTimeSeconds", + "type": "uint256" + }, + { + "name": "salt", + "type": "uint256" + }, + { + "name": "makerAssetData", + "type": "bytes" + }, + { + "name": "takerAssetData", + "type": "bytes" + } + ], + "name": "orders", + "type": "tuple[]" + }, + { + "name": "txOrigin", + "type": "address" + }, + { + "name": "transactionSignature", + "type": "bytes" + }, + { + "name": "approvalExpirationTimeSeconds", + "type": "uint256[]" + }, + { + "name": "approvalSignatures", + "type": "bytes[]" + } + ], + "name": "assertValidTransactionOrdersApproval", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_exchange", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x60806040523480156200001157600080fd5b506040516020806200238083398101806040526200003391908101906200022b565b604080517f454950373132446f6d61696e28000000000000000000000000000000000000006020808301919091527f737472696e67206e616d652c0000000000000000000000000000000000000000602d8301527f737472696e672076657273696f6e2c000000000000000000000000000000000060398301527f6164647265737320766572696679696e67436f6e74726163740000000000000060488301527f29000000000000000000000000000000000000000000000000000000000000006061830152825180830360420181526062830180855281519183019190912060a28401855260179091527f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000060829093019290925282518084018452600581527f312e302e30000000000000000000000000000000000000000000000000000000908201528251808201929092527f626d101e477fd17dd52afb3f9ad9eb016bf60f6e377877f34e8f3ea84c930236828401527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c6060830152306080808401919091528351808403909101815260a0909201909252805191012060005560018054600160a060020a031916600160a060020a039290921691909117905562000273565b600062000224825162000260565b9392505050565b6000602082840312156200023e57600080fd5b60006200024c848462000216565b949350505050565b600160a060020a031690565b60006200026d8262000254565b92915050565b6120fd80620002836000396000f3fe608060405234801561001057600080fd5b5060043610610084576000357c010000000000000000000000000000000000000000000000000000000090048063d2df07331161006d578063d2df0733146100c7578063e306f779146100da578063e3b1aa86146100ef57610084565b80630f7d8e391461008957806390c3bc3f146100b2575b600080fd5b61009c610097366004611888565b610102565b6040516100a99190611e6f565b60405180910390f35b6100c56100c036600461196e565b6104f7565b005b6100c56100d536600461196e565b6105a3565b6100e26105d4565b6040516100a99190611e7d565b6100c56100fd366004611a42565b6105da565b6000808251111515610149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f3b565b60405180910390fd5b600061015483610821565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f2b565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff6108e516565b905060006102c687602163ffffffff6108e516565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff6108e516565b9050600061041287602163ffffffff6108e516565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b92915050565b61050485858585856105a3565b6001548551602087015160408089015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361056a93909290918990600401611f5b565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050505050505050565b60606105b28660400151610930565b90506000815111156105cc576105cc8682878787876105da565b505050505050565b60005481565b3273ffffffffffffffffffffffffffffffffffffffff851614610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f0b565b600061063487610de8565b60408051600080825260208201909252845192935091905b80821461073c576000868281518110151561066357fe5b906020019060200201519050610677611220565b506040805160808101825273ffffffffffffffffffffffffffffffffffffffff8b16815260208101879052908101899052606081018290524282116106e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611edb565b60006106f382610dfb565b90506000610718828a8781518110151561070957fe5b90602001906020020151610102565b905061072a878263ffffffff610e0916565b9650506001909301925061064c915050565b5061074d823263ffffffff610e0916565b885190925060005b8082146108145789516000908b908390811061076d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561079c5761080c565b60008a828151811015156107ac57fe5b6020908102909101015160400151905060006107ce868363ffffffff610ed316565b9050801515610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e9b565b50505b600101610755565b5050505050505050505050565b600080825111151561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f1b565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061088f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eeb565b50016020015190565b60606000610944838263ffffffff610f1016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d50000000000000000000000000000000000000000000000000000000014806109d757507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610a2357507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610aad57610a30611248565b8351610a4690859060049063ffffffff610f7d16565b806020019051610a5991908101906118da565b604080516001808252818301909252919250816020015b610a78611248565b815260200190600190039081610a7057905050925080836000815181101515610a9d57fe5b6020908102909101015250610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610b3e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610b8a57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610bd657507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610c2257507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610c6e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610cba57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610cef578251610cd590849060049063ffffffff610f7d16565b806020019051610ce8919081019061184b565b9150610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610de257610d41611248565b610d49611248565b8451610d5f90869060049063ffffffff610f7d16565b806020019051610d72919081019061190f565b60408051600280825260608201909252929450909250816020015b610d95611248565b815260200190600190039081610d8d57905050935081846000815181101515610dba57fe5b602090810290910101528351819085906001908110610dd557fe5b6020908102909101015250505b50919050565b60006104f1610df683611049565b6110b7565b60006104f1610df6836110f7565b815160405160609184906020808202808401820192910182851015610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ecb565b82851115610e7457610e6d858583611156565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610ea157fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b6000602083510260208401818101815b81811015610f0657805180871415610efd57600195508291505b50602001610ee3565b5050505092915050565b600081600401835110151515610f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f4b565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eab565b8351821115610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ebb565b8282036040519080825280601f01601f191660200182016040528015611021576020820181803883390190505b5090506110426110308261121a565b8461103a8761121a565b018351611156565b9392505050565b604081810151825160209384015182519285019290922083517f213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c81529485019190915273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260608201526080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b604080820151825160208085015160608681015185519584019590952086517f2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e058152938401949094529482015292830152608082015260a09020919050565b6020811015611180576001816020036101000a038019835116818551168082178652505050611215565b8282141561118d57611215565b828211156111c75760208103905080820181840181515b828510156111bf5784518652602095860195909401936111a4565b905250611215565b60208103905080820181840183515b8186121561121057825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111d6565b855250505b505050565b60200190565b6040805160808101825260008082526020820181905260609282018390529181019190915290565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006110428235612038565b60006110428251612038565b6000601f8201831361132b57600080fd5b813561133e61133982611fcd565b611fa6565b81815260209384019390925082018360005b83811015610f06578135860161136688826114b2565b8452506020928301929190910190600101611350565b6000601f8201831361138d57600080fd5b815161139b61133982611fcd565b81815260209384019390925082018360005b83811015610f0657815186016113c38882611690565b84525060209283019291909101906001016113ad565b6000601f820183136113ea57600080fd5b81356113f861133982611fcd565b81815260209384019390925082018360005b83811015610f0657813586016114208882611547565b845250602092830192919091019060010161140a565b6000601f8201831361144757600080fd5b813561145561133982611fcd565b9150818183526020840193506020810190508385602084028201111561147a57600080fd5b60005b83811015610f06578161149088826114a6565b845250602092830192919091019060010161147d565b60006110428235612043565b6000601f820183136114c357600080fd5b81356114d161133982611fee565b915080825260208301602083018583830111156114ed57600080fd5b6114f883828461205f565b50505092915050565b6000601f8201831361151257600080fd5b815161152061133982611fee565b9150808252602083016020830185838301111561153c57600080fd5b6114f883828461206b565b6000610180828403121561155a57600080fd5b611565610180611fa6565b905060006115738484611302565b825250602061158484848301611302565b602083015250604061159884828501611302565b60408301525060606115ac84828501611302565b60608301525060806115c0848285016114a6565b60808301525060a06115d4848285016114a6565b60a08301525060c06115e8848285016114a6565b60c08301525060e06115fc848285016114a6565b60e083015250610100611611848285016114a6565b61010083015250610120611627848285016114a6565b6101208301525061014082013567ffffffffffffffff81111561164957600080fd5b611655848285016114b2565b6101408301525061016082013567ffffffffffffffff81111561167757600080fd5b611683848285016114b2565b6101608301525092915050565b600061018082840312156116a357600080fd5b6116ae610180611fa6565b905060006116bc848461130e565b82525060206116cd8484830161130e565b60208301525060406116e18482850161130e565b60408301525060606116f58482850161130e565b60608301525060806117098482850161183f565b60808301525060a061171d8482850161183f565b60a08301525060c06117318482850161183f565b60c08301525060e06117458482850161183f565b60e08301525061010061175a8482850161183f565b610100830152506101206117708482850161183f565b6101208301525061014082015167ffffffffffffffff81111561179257600080fd5b61179e84828501611501565b6101408301525061016082015167ffffffffffffffff8111156117c057600080fd5b61168384828501611501565b6000606082840312156117de57600080fd5b6117e86060611fa6565b905060006117f684846114a6565b825250602061180784848301611302565b602083015250604082013567ffffffffffffffff81111561182757600080fd5b611833848285016114b2565b60408301525092915050565b60006110428251612043565b60006020828403121561185d57600080fd5b815167ffffffffffffffff81111561187457600080fd5b6118808482850161137c565b949350505050565b6000806040838503121561189b57600080fd5b60006118a785856114a6565b925050602083013567ffffffffffffffff8111156118c457600080fd5b6118d0858286016114b2565b9150509250929050565b6000602082840312156118ec57600080fd5b815167ffffffffffffffff81111561190357600080fd5b61188084828501611690565b6000806040838503121561192257600080fd5b825167ffffffffffffffff81111561193957600080fd5b61194585828601611690565b925050602083015167ffffffffffffffff81111561196257600080fd5b6118d085828601611690565b600080600080600060a0868803121561198657600080fd5b853567ffffffffffffffff81111561199d57600080fd5b6119a9888289016117cc565b95505060206119ba88828901611302565b945050604086013567ffffffffffffffff8111156119d757600080fd5b6119e3888289016114b2565b935050606086013567ffffffffffffffff811115611a0057600080fd5b611a0c88828901611436565b925050608086013567ffffffffffffffff811115611a2957600080fd5b611a358882890161131a565b9150509295509295909350565b60008060008060008060c08789031215611a5b57600080fd5b863567ffffffffffffffff811115611a7257600080fd5b611a7e89828a016117cc565b965050602087013567ffffffffffffffff811115611a9b57600080fd5b611aa789828a016113d9565b9550506040611ab889828a01611302565b945050606087013567ffffffffffffffff811115611ad557600080fd5b611ae189828a016114b2565b935050608087013567ffffffffffffffff811115611afe57600080fd5b611b0a89828a01611436565b92505060a087013567ffffffffffffffff811115611b2757600080fd5b611b3389828a0161131a565b9150509295509295509295565b611b4981612038565b82525050565b611b4981612043565b6000611b6382612034565b808452611b7781602086016020860161206b565b611b808161209b565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b600e81527f494e56414c49445f4f524947494e000000000000000000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611b40565b602081016104f18284611b4f565b602080825281016104f181611b8d565b602080825281016104f181611bbd565b602080825281016104f181611bed565b602080825281016104f181611c1d565b602080825281016104f181611c4d565b602080825281016104f181611c7d565b602080825281016104f181611cad565b602080825281016104f181611d03565b602080825281016104f181611d33565b602080825281016104f181611d63565b602080825281016104f181611db9565b602080825281016104f181611de9565b602080825281016104f181611e19565b60808101611f698287611b4f565b611f766020830186611b40565b8181036040830152611f888185611b58565b90508181036060830152611f9c8184611b58565b9695505050505050565b60405181810167ffffffffffffffff81118282101715611fc557600080fd5b604052919050565b600067ffffffffffffffff821115611fe457600080fd5b5060209081020190565b600067ffffffffffffffff82111561200557600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612046565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561208657818101518382015260200161206e565b83811115612095576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a7230582013be4e9e281ff59b6be3d1c4c7af6075c7d255edc60be429d25841f98f287b3e6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x2380 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x33 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x22B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x454950373132446F6D61696E2800000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x737472696E67206E616D652C0000000000000000000000000000000000000000 PUSH1 0x2D DUP4 ADD MSTORE PUSH32 0x737472696E672076657273696F6E2C0000000000000000000000000000000000 PUSH1 0x39 DUP4 ADD MSTORE PUSH32 0x6164647265737320766572696679696E67436F6E747261637400000000000000 PUSH1 0x48 DUP4 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x61 DUP4 ADD MSTORE DUP3 MLOAD DUP1 DUP4 SUB PUSH1 0x42 ADD DUP2 MSTORE PUSH1 0x62 DUP4 ADD DUP1 DUP6 MSTORE DUP2 MLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0xA2 DUP5 ADD DUP6 MSTORE PUSH1 0x17 SWAP1 SWAP2 MSTORE PUSH32 0x30782050726F746F636F6C20436F6F7264696E61746F72000000000000000000 PUSH1 0x82 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x312E302E30000000000000000000000000000000000000000000000000000000 SWAP1 DUP3 ADD MSTORE DUP3 MLOAD DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0x626D101E477FD17DD52AFB3F9AD9EB016BF60F6E377877F34E8F3EA84C930236 DUP3 DUP5 ADD MSTORE PUSH32 0x6C015BD22B4C69690933C1058878EBDFEF31F9AAAE40BBE86D8A09FE1B2972C PUSH1 0x60 DUP4 ADD MSTORE ADDRESS PUSH1 0x80 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x273 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x224 DUP3 MLOAD PUSH3 0x260 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x23E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x24C DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x26D DUP3 PUSH3 0x254 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x20FD DUP1 PUSH3 0x283 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xD2DF0733 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD2DF0733 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE3B1AA86 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x90C3BC3F EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1888 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E7D JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F3B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x821 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F2B JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP6 MLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x56A SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x598 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B2 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x930 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x5CC JUMPI PUSH2 0x5CC DUP7 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x5DA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST ORIGIN PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EQ PUSH2 0x629 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634 DUP8 PUSH2 0xDE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP1 DUP3 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x663 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x677 PUSH2 0x1220 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EDB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F3 DUP3 PUSH2 0xDFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x718 DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x709 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x72A DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x64C SWAP2 POP POP JUMP JUMPDEST POP PUSH2 0x74D DUP3 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST DUP9 MLOAD SWAP1 SWAP3 POP PUSH1 0x0 JUMPDEST DUP1 DUP3 EQ PUSH2 0x814 JUMPI DUP10 MLOAD PUSH1 0x0 SWAP1 DUP12 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x76D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x79C JUMPI PUSH2 0x80C JUMP JUMPDEST PUSH1 0x0 DUP11 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x7AC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x7CE DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xED3 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E9B JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x755 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x88F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EEB JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x944 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF10 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x9D7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xA23 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xAAD JUMPI PUSH2 0xA30 PUSH2 0x1248 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xA46 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xA59 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xA78 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xA70 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB3E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xB8A JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBD6 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC22 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC6E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCBA JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xCEF JUMPI DUP3 MLOAD PUSH2 0xCD5 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xCE8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x184B JUMP JUMPDEST SWAP2 POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xDE2 JUMPI PUSH2 0xD41 PUSH2 0x1248 JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1248 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xD5F SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD72 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x190F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xD95 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8D JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDBA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xDD5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x1049 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x10F7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0xE5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0xE74 JUMPI PUSH2 0xE6D DUP6 DUP6 DUP4 PUSH2 0x1156 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEA1 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD MUL PUSH1 0x20 DUP5 ADD DUP2 DUP2 ADD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP1 MLOAD DUP1 DUP8 EQ ISZERO PUSH2 0xEFD JUMPI PUSH1 0x1 SWAP6 POP DUP3 SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD PUSH2 0xEE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F4B JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1042 PUSH2 0x1030 DUP3 PUSH2 0x121A JUMP JUMPDEST DUP5 PUSH2 0x103A DUP8 PUSH2 0x121A JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x1156 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD MLOAD DUP3 MLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD PUSH32 0x213C6F636F3EA94E701C0ADF9B2624AA45A6C694F9A292C094F9A81C24B5DF4C DUP2 MSTORE SWAP5 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP7 DUP2 ADD MLOAD DUP6 MLOAD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 DUP7 MLOAD PUSH32 0x2FBCDBAA76BC7589916958AE919DFBEF04D23F6BBF26DE6FF317B32C6CC01E05 DUP2 MSTORE SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 DUP3 ADD MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 SWAP1 KECCAK256 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1180 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x118D JUMPI PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x11C7 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x11BF JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x11A4 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x1210 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x11D6 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x132B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x133E PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x1FA6 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1366 DUP9 DUP3 PUSH2 0x14B2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1350 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x139B PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x13C3 DUP9 DUP3 PUSH2 0x1690 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13F8 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1420 DUP9 DUP3 PUSH2 0x1547 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x140A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1455 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 PUSH2 0x1490 DUP9 DUP3 PUSH2 0x14A6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x147D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x14C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14D1 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x14ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x205F JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1520 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x153C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x206B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1565 PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1573 DUP5 DUP5 PUSH2 0x1302 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1584 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1598 DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x15AC DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x15C0 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x15D4 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x15E8 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x15FC DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1611 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1627 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1655 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AE PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16BC DUP5 DUP5 PUSH2 0x130E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x16CD DUP5 DUP5 DUP4 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16E1 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16F5 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1709 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x171D DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1731 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1745 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x175A DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1770 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x179E DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E8 PUSH1 0x60 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17F6 DUP5 DUP5 PUSH2 0x14A6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1807 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1833 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x137C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x189B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A7 DUP6 DUP6 PUSH2 0x14A6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1945 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A9 DUP9 DUP3 DUP10 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x19BA DUP9 DUP3 DUP10 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E3 DUP9 DUP3 DUP10 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0C DUP9 DUP3 DUP10 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A35 DUP9 DUP3 DUP10 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A7E DUP10 DUP3 DUP11 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AA7 DUP10 DUP3 DUP11 ADD PUSH2 0x13D9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1AB8 DUP10 DUP3 DUP11 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AE1 DUP10 DUP3 DUP11 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0A DUP10 DUP3 DUP11 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B33 DUP10 DUP3 DUP11 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2038 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B63 DUP3 PUSH2 0x2034 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1B77 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1B80 DUP2 PUSH2 0x209B JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F4F524947494E000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B40 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B4F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1B8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BBD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C7D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1CAD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D03 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DE9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E19 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x1F69 DUP3 DUP8 PUSH2 0x1B4F JUMP JUMPDEST PUSH2 0x1F76 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B40 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1F88 DUP2 DUP6 PUSH2 0x1B58 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1F9C DUP2 DUP5 PUSH2 0x1B58 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2005 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2046 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2086 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x206E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 SGT 0xbe 0x4e SWAP15 0x28 0x1f CREATE2 SWAP12 PUSH12 0xE3D1C4C7AF6075C7D255EDC6 SIGNEXTEND 0xe4 0x29 0xd2 PC COINBASE 0xf9 DUP16 0x28 PUSH28 0x3E6C6578706572696D656E74616CF500370000000000000000000000 ", + "sourceMap": "837:227:0:-;;;977:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;977:85:0;;;;;;;;;;;;;;;;;;;;;;1067:148:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;1067:148:10;;;;;;1057:159;;;;;;;;;1533:18;;;;;;;;;;;;;;;;;;1583:21;;;;;;;;;;;;;;;1438:214;;;;;;;;;1517:36;1438:214;;;;1567:39;1438:214;;;;1636:4;1438:214;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1438:214:10;;;;;;;1428:225;;;;;-1:-1:-1;1407:246:10;1067:148;830:35:8;;-1:-1:-1;;;;;;830:35:8;-1:-1:-1;;;;;830:35:8;;;;;;;;;;837:227:0;;5:122:-1;;83:39;114:6;108:13;83:39;;;74:48;68:59;-1:-1;;;68:59;134:263;;249:2;237:9;228:7;224:23;220:32;217:2;;;265:1;262;255:12;217:2;300:1;317:64;373:7;353:9;317:64;;;307:74;211:186;-1:-1;;;;211:186;404:128;-1:-1;;;;;473:54;;456:76;539:105;;608:31;633:5;608:31;;;597:42;591:53;-1:-1;;591:53;;837:227:0;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610084576000357c010000000000000000000000000000000000000000000000000000000090048063d2df07331161006d578063d2df0733146100c7578063e306f779146100da578063e3b1aa86146100ef57610084565b80630f7d8e391461008957806390c3bc3f146100b2575b600080fd5b61009c610097366004611888565b610102565b6040516100a99190611e6f565b60405180910390f35b6100c56100c036600461196e565b6104f7565b005b6100c56100d536600461196e565b6105a3565b6100e26105d4565b6040516100a99190611e7d565b6100c56100fd366004611a42565b6105da565b6000808251111515610149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f3b565b60405180910390fd5b600061015483610821565b7f010000000000000000000000000000000000000000000000000000000000000090049050600360ff8216106101b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b60008160ff1660038111156101c757fe5b905060008160038111156101d757fe5b141561020f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f2b565b600181600381111561021d57fe5b141561035b57835160411461025e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b600084600081518110151561026f57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006102b186600163ffffffff6108e516565b905060006102c687602163ffffffff6108e516565b905060018884848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015196506104f195505050505050565b600281600381111561036957fe5b14156104bf5783516041146103aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e8b565b60008460008151811015156103bb57fe5b01602001517f010000000000000000000000000000000000000000000000000000000000000090819004810204905060006103fd86600163ffffffff6108e516565b9050600061041287602163ffffffff6108e516565b905060018860405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610325573d6000803e3d6000fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611efb565b92915050565b61050485858585856105a3565b6001548551602087015160408089015190517fbfc8bfce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9094169363bfc8bfce9361056a93909290918990600401611f5b565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b505050505050505050565b60606105b28660400151610930565b90506000815111156105cc576105cc8682878787876105da565b505050505050565b60005481565b3273ffffffffffffffffffffffffffffffffffffffff851614610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f0b565b600061063487610de8565b60408051600080825260208201909252845192935091905b80821461073c576000868281518110151561066357fe5b906020019060200201519050610677611220565b506040805160808101825273ffffffffffffffffffffffffffffffffffffffff8b16815260208101879052908101899052606081018290524282116106e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611edb565b60006106f382610dfb565b90506000610718828a8781518110151561070957fe5b90602001906020020151610102565b905061072a878263ffffffff610e0916565b9650506001909301925061064c915050565b5061074d823263ffffffff610e0916565b885190925060005b8082146108145789516000908b908390811061076d57fe5b906020019060200201516060015173ffffffffffffffffffffffffffffffffffffffff16141561079c5761080c565b60008a828151811015156107ac57fe5b6020908102909101015160400151905060006107ce868363ffffffff610ed316565b9050801515610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611e9b565b50505b600101610755565b5050505050505050505050565b600080825111151561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f1b565b815182907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061088f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507f0100000000000000000000000000000000000000000000000000000000000000908190040290565b600081602001835110151515610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eeb565b50016020015190565b60606000610944838263ffffffff610f1016565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167fb4be83d50000000000000000000000000000000000000000000000000000000014806109d757507fffffffff0000000000000000000000000000000000000000000000000000000081167f3e228bae00000000000000000000000000000000000000000000000000000000145b80610a2357507fffffffff0000000000000000000000000000000000000000000000000000000081167f64a3bc1500000000000000000000000000000000000000000000000000000000145b15610aad57610a30611248565b8351610a4690859060049063ffffffff610f7d16565b806020019051610a5991908101906118da565b604080516001808252818301909252919250816020015b610a78611248565b815260200190600190039081610a7057905050925080836000815181101515610a9d57fe5b6020908102909101015250610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f297bb70b000000000000000000000000000000000000000000000000000000001480610b3e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f50dde19000000000000000000000000000000000000000000000000000000000145b80610b8a57507fffffffff0000000000000000000000000000000000000000000000000000000081167f4d0ae54600000000000000000000000000000000000000000000000000000000145b80610bd657507fffffffff0000000000000000000000000000000000000000000000000000000081167fe5fa431b00000000000000000000000000000000000000000000000000000000145b80610c2257507fffffffff0000000000000000000000000000000000000000000000000000000081167fa3e2038000000000000000000000000000000000000000000000000000000000145b80610c6e57507fffffffff0000000000000000000000000000000000000000000000000000000081167f7e1d980800000000000000000000000000000000000000000000000000000000145b80610cba57507fffffffff0000000000000000000000000000000000000000000000000000000081167fdd1c7d1800000000000000000000000000000000000000000000000000000000145b15610cef578251610cd590849060049063ffffffff610f7d16565b806020019051610ce8919081019061184b565b9150610de2565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f3c28d861000000000000000000000000000000000000000000000000000000001415610de257610d41611248565b610d49611248565b8451610d5f90869060049063ffffffff610f7d16565b806020019051610d72919081019061190f565b60408051600280825260608201909252929450909250816020015b610d95611248565b815260200190600190039081610d8d57905050935081846000815181101515610dba57fe5b602090810290910101528351819085906001908110610dd557fe5b6020908102909101015250505b50919050565b60006104f1610df683611049565b6110b7565b60006104f1610df6836110f7565b815160405160609184906020808202808401820192910182851015610e5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ecb565b82851115610e7457610e6d858583611156565b8497508793505b600182019150602081019050808401925082945081885284604052868860018403815181101515610ea157fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830290910190910152508694505050505092915050565b6000602083510260208401818101815b81811015610f0657805180871415610efd57600195508291505b50602001610ee3565b5050505092915050565b600081600401835110151515610f52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611f4b565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610fb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611eab565b8351821115610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014090611ebb565b8282036040519080825280601f01601f191660200182016040528015611021576020820181803883390190505b5090506110426110308261121a565b8461103a8761121a565b018351611156565b9392505050565b604081810151825160209384015182519285019290922083517f213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c81529485019190915273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260608201526080902090565b6000546040517f19010000000000000000000000000000000000000000000000000000000000008152600281019190915260228101919091526042902090565b604080820151825160208085015160608681015185519584019590952086517f2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e058152938401949094529482015292830152608082015260a09020919050565b6020811015611180576001816020036101000a038019835116818551168082178652505050611215565b8282141561118d57611215565b828211156111c75760208103905080820181840181515b828510156111bf5784518652602095860195909401936111a4565b905250611215565b60208103905080820181840183515b8186121561121057825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111d6565b855250505b505050565b60200190565b6040805160808101825260008082526020820181905260609282018390529181019190915290565b61018060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006110428235612038565b60006110428251612038565b6000601f8201831361132b57600080fd5b813561133e61133982611fcd565b611fa6565b81815260209384019390925082018360005b83811015610f06578135860161136688826114b2565b8452506020928301929190910190600101611350565b6000601f8201831361138d57600080fd5b815161139b61133982611fcd565b81815260209384019390925082018360005b83811015610f0657815186016113c38882611690565b84525060209283019291909101906001016113ad565b6000601f820183136113ea57600080fd5b81356113f861133982611fcd565b81815260209384019390925082018360005b83811015610f0657813586016114208882611547565b845250602092830192919091019060010161140a565b6000601f8201831361144757600080fd5b813561145561133982611fcd565b9150818183526020840193506020810190508385602084028201111561147a57600080fd5b60005b83811015610f06578161149088826114a6565b845250602092830192919091019060010161147d565b60006110428235612043565b6000601f820183136114c357600080fd5b81356114d161133982611fee565b915080825260208301602083018583830111156114ed57600080fd5b6114f883828461205f565b50505092915050565b6000601f8201831361151257600080fd5b815161152061133982611fee565b9150808252602083016020830185838301111561153c57600080fd5b6114f883828461206b565b6000610180828403121561155a57600080fd5b611565610180611fa6565b905060006115738484611302565b825250602061158484848301611302565b602083015250604061159884828501611302565b60408301525060606115ac84828501611302565b60608301525060806115c0848285016114a6565b60808301525060a06115d4848285016114a6565b60a08301525060c06115e8848285016114a6565b60c08301525060e06115fc848285016114a6565b60e083015250610100611611848285016114a6565b61010083015250610120611627848285016114a6565b6101208301525061014082013567ffffffffffffffff81111561164957600080fd5b611655848285016114b2565b6101408301525061016082013567ffffffffffffffff81111561167757600080fd5b611683848285016114b2565b6101608301525092915050565b600061018082840312156116a357600080fd5b6116ae610180611fa6565b905060006116bc848461130e565b82525060206116cd8484830161130e565b60208301525060406116e18482850161130e565b60408301525060606116f58482850161130e565b60608301525060806117098482850161183f565b60808301525060a061171d8482850161183f565b60a08301525060c06117318482850161183f565b60c08301525060e06117458482850161183f565b60e08301525061010061175a8482850161183f565b610100830152506101206117708482850161183f565b6101208301525061014082015167ffffffffffffffff81111561179257600080fd5b61179e84828501611501565b6101408301525061016082015167ffffffffffffffff8111156117c057600080fd5b61168384828501611501565b6000606082840312156117de57600080fd5b6117e86060611fa6565b905060006117f684846114a6565b825250602061180784848301611302565b602083015250604082013567ffffffffffffffff81111561182757600080fd5b611833848285016114b2565b60408301525092915050565b60006110428251612043565b60006020828403121561185d57600080fd5b815167ffffffffffffffff81111561187457600080fd5b6118808482850161137c565b949350505050565b6000806040838503121561189b57600080fd5b60006118a785856114a6565b925050602083013567ffffffffffffffff8111156118c457600080fd5b6118d0858286016114b2565b9150509250929050565b6000602082840312156118ec57600080fd5b815167ffffffffffffffff81111561190357600080fd5b61188084828501611690565b6000806040838503121561192257600080fd5b825167ffffffffffffffff81111561193957600080fd5b61194585828601611690565b925050602083015167ffffffffffffffff81111561196257600080fd5b6118d085828601611690565b600080600080600060a0868803121561198657600080fd5b853567ffffffffffffffff81111561199d57600080fd5b6119a9888289016117cc565b95505060206119ba88828901611302565b945050604086013567ffffffffffffffff8111156119d757600080fd5b6119e3888289016114b2565b935050606086013567ffffffffffffffff811115611a0057600080fd5b611a0c88828901611436565b925050608086013567ffffffffffffffff811115611a2957600080fd5b611a358882890161131a565b9150509295509295909350565b60008060008060008060c08789031215611a5b57600080fd5b863567ffffffffffffffff811115611a7257600080fd5b611a7e89828a016117cc565b965050602087013567ffffffffffffffff811115611a9b57600080fd5b611aa789828a016113d9565b9550506040611ab889828a01611302565b945050606087013567ffffffffffffffff811115611ad557600080fd5b611ae189828a016114b2565b935050608087013567ffffffffffffffff811115611afe57600080fd5b611b0a89828a01611436565b92505060a087013567ffffffffffffffff811115611b2757600080fd5b611b3389828a0161131a565b9150509295509295509295565b611b4981612038565b82525050565b611b4981612043565b6000611b6382612034565b808452611b7781602086016020860161206b565b611b808161209b565b9093016020019392505050565b601281527f4c454e4754485f36355f52455155495245440000000000000000000000000000602082015260400190565b601a81527f494e56414c49445f415050524f56414c5f5349474e4154555245000000000000602082015260400190565b601a81527f46524f4d5f4c4553535f5448414e5f544f5f5245515549524544000000000000602082015260400190565b601c81527f544f5f4c4553535f5448414e5f4c454e4754485f524551554952454400000000602082015260400190565b601781527f494e56414c49445f465245455f4d454d4f52595f505452000000000000000000602082015260400190565b601081527f415050524f56414c5f4558504952454400000000000000000000000000000000602082015260400190565b602681527f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524560208201527f5155495245440000000000000000000000000000000000000000000000000000604082015260600190565b601581527f5349474e41545552455f554e535550504f525445440000000000000000000000602082015260400190565b600e81527f494e56414c49445f4f524947494e000000000000000000000000000000000000602082015260400190565b602181527f475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524560208201527f4400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601181527f5349474e41545552455f494c4c4547414c000000000000000000000000000000602082015260400190565b601e81527f4c454e4754485f475245415445525f5448414e5f305f52455155495245440000602082015260400190565b602581527f475245415445525f4f525f455155414c5f544f5f345f4c454e4754485f52455160208201527f5549524544000000000000000000000000000000000000000000000000000000604082015260600190565b602081016104f18284611b40565b602081016104f18284611b4f565b602080825281016104f181611b8d565b602080825281016104f181611bbd565b602080825281016104f181611bed565b602080825281016104f181611c1d565b602080825281016104f181611c4d565b602080825281016104f181611c7d565b602080825281016104f181611cad565b602080825281016104f181611d03565b602080825281016104f181611d33565b602080825281016104f181611d63565b602080825281016104f181611db9565b602080825281016104f181611de9565b602080825281016104f181611e19565b60808101611f698287611b4f565b611f766020830186611b40565b8181036040830152611f888185611b58565b90508181036060830152611f9c8184611b58565b9695505050505050565b60405181810167ffffffffffffffff81118282101715611fc557600080fd5b604052919050565b600067ffffffffffffffff821115611fe457600080fd5b5060209081020190565b600067ffffffffffffffff82111561200557600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b5190565b60006104f182612046565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561208657818101518382015260200161206e565b83811115612095576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a7230582013be4e9e281ff59b6be3d1c4c7af6075c7d255edc60be429d25841f98f287b3e6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x84 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xD2DF0733 GT PUSH2 0x6D JUMPI DUP1 PUSH4 0xD2DF0733 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0xE306F779 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xE3B1AA86 EQ PUSH2 0xEF JUMPI PUSH2 0x84 JUMP JUMPDEST DUP1 PUSH4 0xF7D8E39 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x90C3BC3F EQ PUSH2 0xB2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH2 0x97 CALLDATASIZE PUSH1 0x4 PUSH2 0x1888 JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0xC0 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x4F7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC5 PUSH2 0xD5 CALLDATASIZE PUSH1 0x4 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x5D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x1E7D JUMP JUMPDEST PUSH2 0xC5 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x149 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F3B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x154 DUP4 PUSH2 0x821 JUMP JUMPDEST PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DIV SWAP1 POP PUSH1 0x3 PUSH1 0xFF DUP3 AND LT PUSH2 0x1B6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C7 JUMPI INVALID JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x20F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F2B JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x35B JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x26F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x2B1 DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2C6 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP7 POP PUSH2 0x4F1 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x369 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x4BF JUMPI DUP4 MLOAD PUSH1 0x41 EQ PUSH2 0x3AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x3BB JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV DUP2 MUL DIV SWAP1 POP PUSH1 0x0 PUSH2 0x3FD DUP7 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x412 DUP8 PUSH1 0x21 PUSH4 0xFFFFFFFF PUSH2 0x8E5 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A333200000000 DUP2 MSTORE POP PUSH1 0x1C ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x325 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP6 MLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD SWAP1 MLOAD PUSH32 0xBFC8BFCE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND SWAP4 PUSH4 0xBFC8BFCE SWAP4 PUSH2 0x56A SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1F5B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x598 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B2 DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x930 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x5CC JUMPI PUSH2 0x5CC DUP7 DUP3 DUP8 DUP8 DUP8 DUP8 PUSH2 0x5DA JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST ORIGIN PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EQ PUSH2 0x629 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x634 DUP8 PUSH2 0xDE8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE DUP5 MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 JUMPDEST DUP1 DUP3 EQ PUSH2 0x73C JUMPI PUSH1 0x0 DUP7 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x663 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD SWAP1 POP PUSH2 0x677 PUSH2 0x1220 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE TIMESTAMP DUP3 GT PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EDB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F3 DUP3 PUSH2 0xDFB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x718 DUP3 DUP11 DUP8 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x709 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH2 0x102 JUMP JUMPDEST SWAP1 POP PUSH2 0x72A DUP8 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST SWAP7 POP POP PUSH1 0x1 SWAP1 SWAP4 ADD SWAP3 POP PUSH2 0x64C SWAP2 POP POP JUMP JUMPDEST POP PUSH2 0x74D DUP3 ORIGIN PUSH4 0xFFFFFFFF PUSH2 0xE09 AND JUMP JUMPDEST DUP9 MLOAD SWAP1 SWAP3 POP PUSH1 0x0 JUMPDEST DUP1 DUP3 EQ PUSH2 0x814 JUMPI DUP10 MLOAD PUSH1 0x0 SWAP1 DUP12 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x76D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL ADD MLOAD PUSH1 0x60 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x79C JUMPI PUSH2 0x80C JUMP JUMPDEST PUSH1 0x0 DUP11 DUP3 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0x7AC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x7CE DUP7 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xED3 AND JUMP JUMPDEST SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1E9B JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x1 ADD PUSH2 0x755 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD GT ISZERO ISZERO PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST DUP2 MLOAD DUP3 SWAP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 ADD SWAP1 DUP2 LT PUSH2 0x88F JUMPI INVALID JUMPDEST ADD PUSH1 0x20 ADD MLOAD DUP3 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SWAP3 MSTORE POP PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 SWAP1 DUP2 SWAP1 DIV MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EEB JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x944 DUP4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF10 AND JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xB4BE83D500000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x9D7 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3E228BAE00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xA23 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x64A3BC1500000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xAAD JUMPI PUSH2 0xA30 PUSH2 0x1248 JUMP JUMPDEST DUP4 MLOAD PUSH2 0xA46 SWAP1 DUP6 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xA59 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xA78 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xA70 JUMPI SWAP1 POP POP SWAP3 POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xA9D JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x297BB70B00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xB3E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x50DDE19000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xB8A JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x4D0AE54600000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xBD6 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xE5FA431B00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC22 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xA3E2038000000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xC6E JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x7E1D980800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0xCBA JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0xDD1C7D1800000000000000000000000000000000000000000000000000000000 EQ JUMPDEST ISZERO PUSH2 0xCEF JUMPI DUP3 MLOAD PUSH2 0xCD5 SWAP1 DUP5 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xCE8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x184B JUMP JUMPDEST SWAP2 POP PUSH2 0xDE2 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH32 0x3C28D86100000000000000000000000000000000000000000000000000000000 EQ ISZERO PUSH2 0xDE2 JUMPI PUSH2 0xD41 PUSH2 0x1248 JUMP JUMPDEST PUSH2 0xD49 PUSH2 0x1248 JUMP JUMPDEST DUP5 MLOAD PUSH2 0xD5F SWAP1 DUP7 SWAP1 PUSH1 0x4 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF7D AND JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH2 0xD72 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x190F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xD95 PUSH2 0x1248 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8D JUMPI SWAP1 POP POP SWAP4 POP DUP2 DUP5 PUSH1 0x0 DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xDBA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE DUP4 MLOAD DUP2 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0xDD5 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP1 SWAP2 ADD ADD MSTORE POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x1049 JUMP JUMPDEST PUSH2 0x10B7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 PUSH2 0xDF6 DUP4 PUSH2 0x10F7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 DUP5 SWAP1 PUSH1 0x20 DUP1 DUP3 MUL DUP1 DUP5 ADD DUP3 ADD SWAP3 SWAP2 ADD DUP3 DUP6 LT ISZERO PUSH2 0xE5A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1ECB JUMP JUMPDEST DUP3 DUP6 GT ISZERO PUSH2 0xE74 JUMPI PUSH2 0xE6D DUP6 DUP6 DUP4 PUSH2 0x1156 JUMP JUMPDEST DUP5 SWAP8 POP DUP8 SWAP4 POP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP1 DUP5 ADD SWAP3 POP DUP3 SWAP5 POP DUP2 DUP9 MSTORE DUP5 PUSH1 0x40 MSTORE DUP7 DUP9 PUSH1 0x1 DUP5 SUB DUP2 MLOAD DUP2 LT ISZERO ISZERO PUSH2 0xEA1 JUMPI INVALID JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 SWAP3 DUP4 MUL SWAP1 SWAP2 ADD SWAP1 SWAP2 ADD MSTORE POP DUP7 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD MUL PUSH1 0x20 DUP5 ADD DUP2 DUP2 ADD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP1 MLOAD DUP1 DUP8 EQ ISZERO PUSH2 0xEFD JUMPI PUSH1 0x1 SWAP6 POP DUP3 SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD PUSH2 0xEE3 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP4 MLOAD LT ISZERO ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1F4B JUMP JUMPDEST POP ADD PUSH1 0x20 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP4 GT ISZERO PUSH2 0xFB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EAB JUMP JUMPDEST DUP4 MLOAD DUP3 GT ISZERO PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x140 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST DUP3 DUP3 SUB PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CODESIZE DUP4 CODECOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH2 0x1042 PUSH2 0x1030 DUP3 PUSH2 0x121A JUMP JUMPDEST DUP5 PUSH2 0x103A DUP8 PUSH2 0x121A JUMP JUMPDEST ADD DUP4 MLOAD PUSH2 0x1156 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD MLOAD DUP3 MLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 KECCAK256 DUP4 MLOAD PUSH32 0x213C6F636F3EA94E701C0ADF9B2624AA45A6C694F9A292C094F9A81C24B5DF4C DUP2 MSTORE SWAP5 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x22 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x60 DUP7 DUP2 ADD MLOAD DUP6 MLOAD SWAP6 DUP5 ADD SWAP6 SWAP1 SWAP6 KECCAK256 DUP7 MLOAD PUSH32 0x2FBCDBAA76BC7589916958AE919DFBEF04D23F6BBF26DE6FF317B32C6CC01E05 DUP2 MSTORE SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP5 DUP3 ADD MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 SWAP1 KECCAK256 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1180 JUMPI PUSH1 0x1 DUP2 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP4 MLOAD AND DUP2 DUP6 MLOAD AND DUP1 DUP3 OR DUP7 MSTORE POP POP POP PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 EQ ISZERO PUSH2 0x118D JUMPI PUSH2 0x1215 JUMP JUMPDEST DUP3 DUP3 GT ISZERO PUSH2 0x11C7 JUMPI PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP2 MLOAD JUMPDEST DUP3 DUP6 LT ISZERO PUSH2 0x11BF JUMPI DUP5 MLOAD DUP7 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x11A4 JUMP JUMPDEST SWAP1 MSTORE POP PUSH2 0x1215 JUMP JUMPDEST PUSH1 0x20 DUP2 SUB SWAP1 POP DUP1 DUP3 ADD DUP2 DUP5 ADD DUP4 MLOAD JUMPDEST DUP2 DUP7 SLT ISZERO PUSH2 0x1210 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x11D6 JUMP JUMPDEST DUP6 MSTORE POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x60 SWAP3 DUP3 ADD DUP4 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x180 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2038 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x132B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x133E PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x1FA6 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1366 DUP9 DUP3 PUSH2 0x14B2 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1350 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x139B PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 MLOAD DUP7 ADD PUSH2 0x13C3 DUP9 DUP3 PUSH2 0x1690 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x13AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13F8 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x1420 DUP9 DUP3 PUSH2 0x1547 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x140A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1447 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1455 PUSH2 0x1339 DUP3 PUSH2 0x1FCD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF06 JUMPI DUP2 PUSH2 0x1490 DUP9 DUP3 PUSH2 0x14A6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x147D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 CALLDATALOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x14C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14D1 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x14ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x205F JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH2 0x1512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1520 PUSH2 0x1339 DUP3 PUSH2 0x1FEE JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x153C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F8 DUP4 DUP3 DUP5 PUSH2 0x206B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1565 PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1573 DUP5 DUP5 PUSH2 0x1302 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1584 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1598 DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x15AC DUP5 DUP3 DUP6 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x15C0 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x15D4 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x15E8 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x15FC DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x1611 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1627 DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1649 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1655 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH2 0x160 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x180 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AE PUSH2 0x180 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16BC DUP5 DUP5 PUSH2 0x130E JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x16CD DUP5 DUP5 DUP4 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16E1 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16F5 DUP5 DUP3 DUP6 ADD PUSH2 0x130E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1709 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x171D DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1731 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1745 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x175A DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x120 PUSH2 0x1770 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP PUSH2 0x140 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x179E DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH2 0x140 DUP4 ADD MSTORE POP PUSH2 0x160 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1683 DUP5 DUP3 DUP6 ADD PUSH2 0x1501 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17E8 PUSH1 0x60 PUSH2 0x1FA6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17F6 DUP5 DUP5 PUSH2 0x14A6 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1807 DUP5 DUP5 DUP4 ADD PUSH2 0x1302 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1827 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1833 DUP5 DUP3 DUP6 ADD PUSH2 0x14B2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1042 DUP3 MLOAD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1874 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x137C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x189B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A7 DUP6 DUP6 PUSH2 0x14A6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1880 DUP5 DUP3 DUP6 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1922 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1939 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1945 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18D0 DUP6 DUP3 DUP7 ADD PUSH2 0x1690 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x199D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19A9 DUP9 DUP3 DUP10 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x19BA DUP9 DUP3 DUP10 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E3 DUP9 DUP3 DUP10 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0C DUP9 DUP3 DUP10 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A35 DUP9 DUP3 DUP10 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A7E DUP10 DUP3 DUP11 ADD PUSH2 0x17CC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AA7 DUP10 DUP3 DUP11 ADD PUSH2 0x13D9 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1AB8 DUP10 DUP3 DUP11 ADD PUSH2 0x1302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1AE1 DUP10 DUP3 DUP11 ADD PUSH2 0x14B2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B0A DUP10 DUP3 DUP11 ADD PUSH2 0x1436 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B33 DUP10 DUP3 DUP11 ADD PUSH2 0x131A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2038 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1B49 DUP2 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B63 DUP3 PUSH2 0x2034 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1B77 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x206B JUMP JUMPDEST PUSH2 0x1B80 DUP2 PUSH2 0x209B JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x4C454E4754485F36355F52455155495245440000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x494E56414C49445F415050524F56414C5F5349474E4154555245000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1A DUP2 MSTORE PUSH32 0x46524F4D5F4C4553535F5448414E5F544F5F5245515549524544000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1C DUP2 MSTORE PUSH32 0x544F5F4C4553535F5448414E5F4C454E4754485F524551554952454400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH32 0x494E56414C49445F465245455F4D454D4F52595F505452000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 MSTORE PUSH32 0x415050524F56414C5F4558504952454400000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F33325F4C454E4754485F5245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5155495245440000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x15 DUP2 MSTORE PUSH32 0x5349474E41545552455F554E535550504F525445440000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH32 0x494E56414C49445F4F524947494E000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x475245415445525F5448414E5F5A45524F5F4C454E4754485F52455155495245 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH32 0x5349474E41545552455F494C4C4547414C000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1E DUP2 MSTORE PUSH32 0x4C454E4754485F475245415445525F5448414E5F305F52455155495245440000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x25 DUP2 MSTORE PUSH32 0x475245415445525F4F525F455155414C5F544F5F345F4C454E4754485F524551 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x5549524544000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B40 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x4F1 DUP3 DUP5 PUSH2 0x1B4F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1B8D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BBD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C4D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1C7D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1CAD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D03 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1DE9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4F1 DUP2 PUSH2 0x1E19 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x1F69 DUP3 DUP8 PUSH2 0x1B4F JUMP JUMPDEST PUSH2 0x1F76 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B40 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1F88 DUP2 DUP6 PUSH2 0x1B58 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1F9C DUP2 DUP5 PUSH2 0x1B58 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1FC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1FE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2005 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F1 DUP3 PUSH2 0x2046 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2086 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x206E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 SGT 0xbe 0x4e SWAP15 0x28 0x1f CREATE2 SWAP12 PUSH12 0xE3D1C4C7AF6075C7D255EDC6 SIGNEXTEND 0xe4 0x29 0xd2 PC COINBASE 0xf9 DUP16 0x28 PUSH28 0x3E6C6578706572696D656E74616CF500370000000000000000000000 ", + "sourceMap": "837:227:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;837:227:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:2549:3;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1627:801:2;;;;;;;;;:::i;:::-;;2108:913:1;;;;;;;;;:::i;1323:33:10:-;;;:::i;:::-;;;;;;;;3713:2773:1;;;;;;;;;:::i;988:2549:3:-;1097:21;1174:1;1155:9;:16;:20;1134:97;;;;;;;;;;;;;;;;;;;;;;;;1296:22;1327:23;:9;:21;:23::i;:::-;1321:30;;;;-1:-1:-1;1449:29:3;1424:55;;;;1403:123;;;;;;;;;;;;;;1537:27;1581:16;1567:31;;;;;;;;;;1537:61;-1:-1:-1;1948:21:3;1931:13;:38;;;;;;;;;1927:1260;;;1985:27;;;;;;;;;;;1927:1260;2085:20;2068:13;:37;;;;;;;;;2064:1123;;;2146:16;;2166:2;2146:22;2121:99;;;;;;;;;;;;;;2234:7;2250:9;2260:1;2250:12;;;;;;;;;;;;;;;;;;;;;2244:19;;-1:-1:-1;2277:9:3;2289:24;:9;2311:1;2289:24;:21;:24;:::i;:::-;2277:36;-1:-1:-1;2327:9:3;2339:25;:9;2361:2;2339:25;:21;:25;:::i;:::-;2327:37;;2394:102;2421:4;2443:1;2462;2481;2394:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2394:102:3;;;;;;-1:-1:-1;2510:20:3;;-1:-1:-1;;;;;;2510:20:3;2064:1123;2607:21;2590:13;:38;;;;;;;;;2586:601;;;2669:16;;2689:2;2669:22;2644:99;;;;;;;;;;;;;;2757:7;2773:9;2783:1;2773:12;;;;;;;;;;;;;;;;;;;;;2767:19;;-1:-1:-1;2800:9:3;2812:24;:9;2834:1;2812:24;:21;:24;:::i;:::-;2800:36;-1:-1:-1;2850:9:3;2862:25;:9;2884:2;2862:25;:21;:25;:::i;:::-;2850:37;;2917:225;3048:4;2954:116;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2954:116:3;;;2944:127;;;;;;3089:1;3108;3127;2917:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2586:601:3;3499:31;;;;;;;;;;;988:2549;;;;;:::o;1627:801:2:-;2008:197;2053:11;2078:8;2100:20;2134:29;2177:18;2008:31;:197::i;:::-;2251:8;;2292:16;;2322:25;;;;2361:16;;;;;2251:170;;;;;:8;;;;;:27;;:170;;2292:16;;2322:25;;2391:20;;2251:170;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2251:170:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2251:170:2;;;;1627:801;;;;;:::o;2108:913:1:-;2511:30;2544:38;2565:11;:16;;;2544:20;:38::i;:::-;2511:71;;2669:1;2653:6;:13;:17;2649:366;;;2754:250;2808:11;2837:6;2861:8;2887:20;2925:29;2972:18;2754:36;:250::i;:::-;2108:913;;;;;;:::o;1323:33:10:-;;;;:::o;3713:2773:1:-;4182:9;:21;;;;4161:82;;;;;;;;;;;;;;4285:23;4311:31;4330:11;4311:18;:31::i;:::-;4445:16;;;4459:1;4445:16;;;;;;;;;4499:25;;4285:57;;-1:-1:-1;4445:16:1;4499:25;4534:1151;4554:21;;;4534:1151;;4635:44;4682:29;4712:1;4682:32;;;;;;;;;;;;;;;;;;4635:79;;4728:35;;:::i;:::-;-1:-1:-1;4766:266:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5220:15;5181:54;;5094:191;;;;;;;;;;;;;;5364:20;5387:36;5414:8;5387:26;:36::i;:::-;5364:59;;5437:29;5469:53;5486:12;5500:18;5519:1;5500:21;;;;;;;;;;;;;;;;;;5469:16;:53::i;:::-;5437:85;-1:-1:-1;5621:53:1;:23;5437:85;5621:53;:30;:53;:::i;:::-;5595:79;-1:-1:-1;;4577:3:1;;;;;-1:-1:-1;4534:1151:1;;-1:-1:-1;;4534:1151:1;;-1:-1:-1;5801:41:1;:23;5832:9;5801:41;:30;:41;:::i;:::-;5884:13;;5775:67;;-1:-1:-1;5861:20:1;5907:573;5927:17;;;5907:573;;6043:9;;6078:1;;6043:6;;6050:1;;6043:9;;;;;;;;;;;;;;:23;;;:37;;;6039:84;;;6100:8;;6039:84;6214:23;6240:6;6247:1;6240:9;;;;;;;;;;;;;;;;;;;:29;;;;-1:-1:-1;6283:20:1;6306:49;:23;6240:29;6306:49;:32;:49;:::i;:::-;6283:72;;6394:15;6369:100;;;;;;;;;;;;;;;;5907:573;;;5946:3;;5907:573;;;;3713:2773;;;;;;;;;;:::o;8315:448:22:-;8399:13;8460:1;8449;:8;:12;8428:92;;;;;;;;;;;;;;;;8570:8;;8568:1;;8570:12;;;;8568:15;;;;;;;;;;8682:8;;8678:16;;8707:17;;;-1:-1:-1;8568:15:22;;;;;;;8315:448::o;13292:490::-;13413:14;13476:5;13484:2;13476:10;13464:1;:8;:22;;13443:107;;;;;;;;;;;;;;;;-1:-1:-1;13729:13:22;13631:2;13729:13;13723:20;;13292:490::o;6698:1760:1:-;6794:30;6840:15;6858:18;:4;6840:15;6858:18;:15;:18;:::i;:::-;6840:36;-1:-1:-1;6903:31:1;;;6915:19;6903:31;;:87;;-1:-1:-1;6950:40:1;;;6962:28;6950:40;6903:87;:142;;;-1:-1:-1;7006:39:1;;;7018:27;7006:39;6903:142;6886:1543;;;7106:27;;:::i;:::-;7179:11;;7165:26;;7179:4;;7176:1;;7165:26;:10;:26;:::i;:::-;7137:102;;;;;;;;;;;;;;7262:23;;;7283:1;7262:23;;;;;;;;;7105:134;;-1:-1:-1;7262:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7253:32;;7311:5;7299:6;7306:1;7299:9;;;;;;;;;;;;;;;;;;:17;-1:-1:-1;6886:1543:1;;;7350:38;;;7362:26;7350:38;;:101;;-1:-1:-1;7404:47:1;;;7416:35;7404:47;7350:101;:163;;;-1:-1:-1;7467:46:1;;;7479:34;7467:46;7350:163;:217;;;-1:-1:-1;7529:38:1;;;7541:26;7529:38;7350:217;:280;;;-1:-1:-1;7583:47:1;;;7595:35;7583:47;7350:280;:335;;;-1:-1:-1;7646:39:1;;;7658:27;7646:39;7350:335;:399;;;-1:-1:-1;7701:48:1;;;7713:36;7701:48;7350:399;7333:1096;;;7898:11;;7884:26;;7898:4;;7895:1;;7884:26;:10;:26;:::i;:::-;7856:104;;;;;;;;;;;;;;7845:115;;7333:1096;;;7981:33;;;7993:21;7981:33;7977:452;;;8075:31;;:::i;:::-;8108:32;;:::i;:::-;8186:11;;8172:26;;8186:4;;8183:1;;8172:26;:10;:26;:::i;:::-;8144:118;;;;;;;;;;;;;;8324:23;;;8345:1;8324:23;;;;;;;;;8074:188;;-1:-1:-1;8074:188:1;;-1:-1:-1;8324:23:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8315:32;;8373:9;8361:6;8368:1;8361:9;;;;;;;;;;;;;;;;;;:21;8396:9;;8408:10;;8396:6;;8403:1;;8396:9;;;;;;;;;;;;;;:22;-1:-1:-1;;7977:452:1;-1:-1:-1;6698:1760:1;;;:::o;1602:406:11:-;1715:23;1916:53;1934:34;1956:11;1934:21;:34::i;:::-;1916:17;:53::i;2006:259:9:-;2126:20;2177:52;2195:33;2219:8;2195:23;:33::i;1089:2103:21:-;1438:19;;1587:4;1581:11;1209:16;;1438:12;;1510:2;:23;;;1676:45;;;;;;1438:19;1504:30;2076:32;;;;2055:102;;;;;;;;;;;;;;2411:18;2398:10;:31;2394:273;;;2445:78;2462:10;2474:20;2496:26;2445:16;:78::i;:::-;2580:10;2564:26;;2631:12;2607:36;;2546:111;2735:1;2713:23;;;;2776:2;2746:32;;;;2832:26;2809:20;:49;2788:70;;2881:18;2868:31;;2991:18;2977:12;2970:40;3072:10;3066:4;3059:24;3141:15;3102:12;3136:1;3115:18;:22;3102:36;;;;;;;;;;:54;;;;:36;;;;;;;;;;:54;-1:-1:-1;3173:12:21;;-1:-1:-1;;;;;1089:2103:21;;;;:::o;3431:1034::-;3543:12;3686:2;3671:12;3665:19;3661:28;3799:2;3785:12;3781:21;3911:12;3891:18;3887:37;3985:18;3972:453;4011:16;4008:1;4005:23;3972:453;;;4130:1;4124:8;4226:12;4218:6;4215:24;4212:2;;;4316:1;4305:12;;4377:16;4372:21;;4212:2;-1:-1:-1;4042:2:21;4035:10;3972:453;;;-1:-1:-1;;;;3431:1034:21;;;;:::o;15595:687:22:-;15715:13;15777:5;15785:1;15777:9;15765:1;:8;:21;;15744:105;;;;;;;;;;;;;;;;-1:-1:-1;16023:13:22;15926:2;16023:13;16017:20;16176:66;16164:79;;15595:687::o;6453:617::-;6587:19;6643:10;;;;6622:83;;;;;;;;;;;;;;6742:8;;6736:14;;;6715:89;;;;;;;;;;;;;;6905:4;6900:2;:9;6890:20;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;6890:20:22;87:34:-1;135:17;;-1:-1;6890:20:22;;6881:29;;6920:120;6941:23;:6;:21;:23::i;:::-;6999:4;6978:18;:1;:16;:18::i;:::-;:25;7017:6;:13;6920:7;:120::i;:::-;6453:617;;;;;:::o;2255:1419:11:-;2489:16;;;;;2530;;2580:25;;;;;3004:11;;2989:13;;;2979:37;;;;3088:9;;992:66;3111:26;;3237:15;;;3230:29;;;;3382:42;3363:62;;;3346:15;;;3339:87;;;;2469:17;3464:15;;3457:33;3631:3;3613:22;;;2255:1419::o;1856:924:10:-;1950:14;2007:18;2319:2;2313:9;2351:66;2336:82;;2468:1;2456:14;;2449:40;;;;2586:2;2574:15;;2567:35;;;;2738:2;2720:21;;;1856:924::o;2605:1613:9:-;2858:29;;;;;2916:17;;2969:24;;;;;2822:33;3043:38;;;;3537:27;;3506:29;;;3496:69;;;;3641:9;;1085:66;3664:26;;3758:15;;;3751:33;;;;3839:15;;;3832:40;3927:15;;;3920:49;4036:3;4024:16;;4017:55;4175:3;4157:22;;2605:1613;;;:::o;1808:4337:22:-;1958:2;1949:6;:11;1945:4194;;;2247:1;2237:6;2233:2;2229:15;2224:3;2220:25;2216:33;2298:4;2294:9;2285:6;2279:13;2275:29;2347:4;2340;2334:11;2330:22;2388:1;2385;2382:8;2376:4;2369:22;2186:219;;;;;;2509:4;2499:6;:14;2495:59;;;2533:7;;2495:59;3243:4;3234:6;:13;3230:2899;;;3569:2;3561:6;3557:15;3547:25;;3617:6;3609;3605:19;3667:6;3661:4;3657:17;3974:4;3968:11;4242:198;4260:4;4252:6;4249:16;4242:198;;;4308:13;;4295:27;;4369:2;4405:13;;;;4357:15;;;;4242:198;;;4529:18;;-1:-1:-1;3276:1289:22;;;4810:2;4802:6;4798:15;4788:25;;4858:6;4850;4846:19;4908:6;4902:4;4898:17;5218:6;5212:13;5797:191;5814:4;5808;5804:15;5797:191;;;5862:11;;5849:25;;5907:13;;;;;5953;;;;5797:191;;;6078:19;;-1:-1:-1;;4612:1503:22;1808:4337;;;:::o;1341:228::-;1520:2;1509:14;;1341:228::o;837:227:0:-;;;;;;;;;-1:-1:-1;837:227:0;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;275:693;;390:4;378:17;;374:27;-1:-1;364:2;;415:1;412;405:12;364:2;452:6;439:20;474:85;489:69;551:6;489:69;;;474:85;;;587:21;;;631:4;619:17;;;;465:94;;-1:-1;644:14;;619:17;739:1;724:238;749:6;746:1;743:13;724:238;;;832:3;819:17;811:6;807:30;856:42;894:3;882:10;856:42;;;844:55;;-1:-1;922:4;913:14;;;;941;;;;;771:1;764:9;724:238;;1008:735;;1144:4;1132:17;;1128:27;-1:-1;1118:2;;1169:1;1166;1159:12;1118:2;1199:6;1193:13;1221:95;1236:79;1308:6;1236:79;;1221:95;1344:21;;;1388:4;1376:17;;;;1212:104;;-1:-1;1401:14;;1376:17;1496:1;1481:256;1506:6;1503:1;1500:13;1481:256;;;1582:3;1576:10;1568:6;1564:23;1606:67;1669:3;1657:10;1606:67;;;1594:80;;-1:-1;1697:4;1688:14;;;;1716;;;;;1528:1;1521:9;1481:256;;1783:735;;1912:4;1900:17;;1896:27;-1:-1;1886:2;;1937:1;1934;1927:12;1886:2;1974:6;1961:20;1996:99;2011:83;2087:6;2011:83;;1996:99;2123:21;;;2167:4;2155:17;;;;1987:108;;-1:-1;2180:14;;2155:17;2275:1;2260:252;2285:6;2282:1;2279:13;2260:252;;;2368:3;2355:17;2347:6;2343:30;2392:56;2444:3;2432:10;2392:56;;;2380:69;;-1:-1;2472:4;2463:14;;;;2491;;;;;2307:1;2300:9;2260:252;;2544:707;;2654:4;2642:17;;2638:27;-1:-1;2628:2;;2679:1;2676;2669:12;2628:2;2716:6;2703:20;2738:80;2753:64;2810:6;2753:64;;2738:80;2729:89;;2835:5;2860:6;2853:5;2846:21;2890:4;2882:6;2878:17;2868:27;;2912:4;2907:3;2903:14;2896:21;;2965:6;3012:3;3004:4;2996:6;2992:17;2987:3;2983:27;2980:36;2977:2;;;3029:1;3026;3019:12;2977:2;3054:1;3039:206;3064:6;3061:1;3058:13;3039:206;;;3122:3;3144:37;3177:3;3165:10;3144:37;;;3132:50;;-1:-1;3205:4;3196:14;;;;3224;;;;;3086:1;3079:9;3039:206;;3259:118;;3326:46;3364:6;3351:20;3326:46;;3385:432;;3475:4;3463:17;;3459:27;-1:-1;3449:2;;3500:1;3497;3490:12;3449:2;3537:6;3524:20;3559:60;3574:44;3611:6;3574:44;;3559:60;3550:69;;3639:6;3632:5;3625:21;3675:4;3667:6;3663:17;3708:4;3701:5;3697:16;3743:3;3734:6;3729:3;3725:16;3722:25;3719:2;;;3760:1;3757;3750:12;3719:2;3770:41;3804:6;3799:3;3794;3770:41;;;3442:375;;;;;;;;3826:434;;3927:4;3915:17;;3911:27;-1:-1;3901:2;;3952:1;3949;3942:12;3901:2;3982:6;3976:13;4004:60;4019:44;4056:6;4019:44;;4004:60;3995:69;;4084:6;4077:5;4070:21;4120:4;4112:6;4108:17;4153:4;4146:5;4142:16;4188:3;4179:6;4174:3;4170:16;4167:25;4164:2;;;4205:1;4202;4195:12;4164:2;4215:39;4247:6;4242:3;4237;4215:39;;4745:2205;;4853:5;4841:9;4836:3;4832:19;4828:31;4825:2;;;4872:1;4869;4862:12;4825:2;4890:21;4905:5;4890:21;;;4881:30;-1:-1;4969:1;5000:49;5045:3;5025:9;5000:49;;;4976:74;;-1:-1;5119:2;5152:49;5197:3;5173:22;;;5152:49;;;5145:4;5138:5;5134:16;5127:75;5071:142;5278:2;5311:49;5356:3;5347:6;5336:9;5332:22;5311:49;;;5304:4;5297:5;5293:16;5286:75;5223:149;5431:2;5464:49;5509:3;5500:6;5489:9;5485:22;5464:49;;;5457:4;5450:5;5446:16;5439:75;5382:143;5587:3;5621:49;5666:3;5657:6;5646:9;5642:22;5621:49;;;5614:4;5607:5;5603:16;5596:75;5535:147;5744:3;5778:49;5823:3;5814:6;5803:9;5799:22;5778:49;;;5771:4;5764:5;5760:16;5753:75;5692:147;5893:3;5927:49;5972:3;5963:6;5952:9;5948:22;5927:49;;;5920:4;5913:5;5909:16;5902:75;5849:139;6042:3;6076:49;6121:3;6112:6;6101:9;6097:22;6076:49;;;6069:4;6062:5;6058:16;6051:75;5998:139;6204:3;6239:49;6284:3;6275:6;6264:9;6260:22;6239:49;;;6231:5;6224;6220:17;6213:76;6147:153;6350:3;6385:49;6430:3;6421:6;6410:9;6406:22;6385:49;;;6377:5;6370;6366:17;6359:76;6310:136;6534:3;6523:9;6519:19;6506:33;6559:18;6551:6;6548:30;6545:2;;;6591:1;6588;6581:12;6545:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6619:5;6612;6608:17;6601:81;6456:237;6781:3;6770:9;6766:19;6753:33;6806:18;6798:6;6795:30;6792:2;;;6838:1;6835;6828:12;6792:2;6874:54;6924:3;6915:6;6904:9;6900:22;6874:54;;;6866:5;6859;6855:17;6848:81;6703:237;4819:2131;;;;;6985:2334;;7104:5;7092:9;7087:3;7083:19;7079:31;7076:2;;;7123:1;7120;7113:12;7076:2;7141:21;7156:5;7141:21;;;7132:30;-1:-1;7220:1;7251:60;7307:3;7287:9;7251:60;;;7227:85;;-1:-1;7381:2;7414:60;7470:3;7446:22;;;7414:60;;;7407:4;7400:5;7396:16;7389:86;7333:153;7551:2;7584:60;7640:3;7631:6;7620:9;7616:22;7584:60;;;7577:4;7570:5;7566:16;7559:86;7496:160;7715:2;7748:60;7804:3;7795:6;7784:9;7780:22;7748:60;;;7741:4;7734:5;7730:16;7723:86;7666:154;7882:3;7916:60;7972:3;7963:6;7952:9;7948:22;7916:60;;;7909:4;7902:5;7898:16;7891:86;7830:158;8050:3;8084:60;8140:3;8131:6;8120:9;8116:22;8084:60;;;8077:4;8070:5;8066:16;8059:86;7998:158;8210:3;8244:60;8300:3;8291:6;8280:9;8276:22;8244:60;;;8237:4;8230:5;8226:16;8219:86;8166:150;8370:3;8404:60;8460:3;8451:6;8440:9;8436:22;8404:60;;;8397:4;8390:5;8386:16;8379:86;8326:150;8543:3;8578:60;8634:3;8625:6;8614:9;8610:22;8578:60;;;8570:5;8563;8559:17;8552:87;8486:164;8700:3;8735:60;8791:3;8782:6;8771:9;8767:22;8735:60;;;8727:5;8720;8716:17;8709:87;8660:147;8888:3;8877:9;8873:19;8867:26;8913:18;8905:6;8902:30;8899:2;;;8945:1;8942;8935:12;8899:2;8981:65;9042:3;9033:6;9022:9;9018:22;8981:65;;;8973:5;8966;8962:17;8955:92;8817:241;9139:3;9128:9;9124:19;9118:26;9164:18;9156:6;9153:30;9150:2;;;9196:1;9193;9186:12;9150:2;9232:65;9293:3;9284:6;9273:9;9269:22;9232:65;;9378:719;;9501:4;9489:9;9484:3;9480:19;9476:30;9473:2;;;9519:1;9516;9509:12;9473:2;9537:20;9552:4;9537:20;;;9528:29;-1:-1;9607:1;9638:49;9683:3;9663:9;9638:49;;;9614:74;;-1:-1;9758:2;9791:49;9836:3;9812:22;;;9791:49;;;9784:4;9777:5;9773:16;9766:75;9709:143;9930:2;9919:9;9915:18;9902:32;9954:18;9946:6;9943:30;9940:2;;;9986:1;9983;9976:12;9940:2;10021:54;10071:3;10062:6;10051:9;10047:22;10021:54;;;10014:4;10007:5;10003:16;9996:80;9862:225;9467:630;;;;;10229:122;;10307:39;10338:6;10332:13;10307:39;;10358:422;;10513:2;10501:9;10492:7;10488:23;10484:32;10481:2;;;10529:1;10526;10519:12;10481:2;10564:24;;10608:18;10597:30;;10594:2;;;10640:1;10637;10630:12;10594:2;10660:104;10756:7;10747:6;10736:9;10732:22;10660:104;;;10650:114;10475:305;-1:-1;;;;10475:305;10787:470;;;10917:2;10905:9;10896:7;10892:23;10888:32;10885:2;;;10933:1;10930;10923:12;10885:2;10968:1;10985:53;11030:7;11010:9;10985:53;;;10975:63;;10947:97;11103:2;11092:9;11088:18;11075:32;11127:18;11119:6;11116:30;11113:2;;;11159:1;11156;11149:12;11113:2;11179:62;11233:7;11224:6;11213:9;11209:22;11179:62;;;11169:72;;11054:193;10879:378;;;;;;11264:380;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;11414:1;11411;11404:12;11366:2;11449:24;;11493:18;11482:30;;11479:2;;;11525:1;11522;11515:12;11479:2;11545:83;11620:7;11611:6;11600:9;11596:22;11545:83;;11651:633;;;11821:2;11809:9;11800:7;11796:23;11792:32;11789:2;;;11837:1;11834;11827:12;11789:2;11872:24;;11916:18;11905:30;;11902:2;;;11948:1;11945;11938:12;11902:2;11968:83;12043:7;12034:6;12023:9;12019:22;11968:83;;;11958:93;;11851:206;12109:2;12098:9;12094:18;12088:25;12133:18;12125:6;12122:30;12119:2;;;12165:1;12162;12155:12;12119:2;12185:83;12260:7;12251:6;12240:9;12236:22;12185:83;;12291:1283;;;;;;12561:3;12549:9;12540:7;12536:23;12532:33;12529:2;;;12578:1;12575;12568:12;12529:2;12613:31;;12664:18;12653:30;;12650:2;;;12696:1;12693;12686:12;12650:2;12716:87;12795:7;12786:6;12775:9;12771:22;12716:87;;;12706:97;;12592:217;12840:2;12858:53;12903:7;12894:6;12883:9;12879:22;12858:53;;;12848:63;;12819:98;12976:2;12965:9;12961:18;12948:32;13000:18;12992:6;12989:30;12986:2;;;13032:1;13029;13022:12;12986:2;13052:62;13106:7;13097:6;13086:9;13082:22;13052:62;;;13042:72;;12927:193;13179:2;13168:9;13164:18;13151:32;13203:18;13195:6;13192:30;13189:2;;;13235:1;13232;13225:12;13189:2;13255:78;13325:7;13316:6;13305:9;13301:22;13255:78;;;13245:88;;13130:209;13398:3;13387:9;13383:19;13370:33;13423:18;13415:6;13412:30;13409:2;;;13455:1;13452;13445:12;13409:2;13475:83;13550:7;13541:6;13530:9;13526:22;13475:83;;;13465:93;;13349:215;12523:1051;;;;;;;;;13581:1583;;;;;;;13912:3;13900:9;13891:7;13887:23;13883:33;13880:2;;;13929:1;13926;13919:12;13880:2;13964:31;;14015:18;14004:30;;14001:2;;;14047:1;14044;14037:12;14001:2;14067:87;14146:7;14137:6;14126:9;14122:22;14067:87;;;14057:97;;13943:217;14219:2;14208:9;14204:18;14191:32;14243:18;14235:6;14232:30;14229:2;;;14275:1;14272;14265:12;14229:2;14295:97;14384:7;14375:6;14364:9;14360:22;14295:97;;;14285:107;;14170:228;14429:2;14447:53;14492:7;14483:6;14472:9;14468:22;14447:53;;;14437:63;;14408:98;14565:2;14554:9;14550:18;14537:32;14589:18;14581:6;14578:30;14575:2;;;14621:1;14618;14611:12;14575:2;14641:62;14695:7;14686:6;14675:9;14671:22;14641:62;;;14631:72;;14516:193;14768:3;14757:9;14753:19;14740:33;14793:18;14785:6;14782:30;14779:2;;;14825:1;14822;14815:12;14779:2;14845:78;14915:7;14906:6;14895:9;14891:22;14845:78;;;14835:88;;14719:210;14988:3;14977:9;14973:19;14960:33;15013:18;15005:6;15002:30;14999:2;;;15045:1;15042;15035:12;14999:2;15065:83;15140:7;15131:6;15120:9;15116:22;15065:83;;;15055:93;;14939:215;13874:1290;;;;;;;;;15171:120;15254:31;15279:5;15254:31;;;15249:3;15242:44;15236:55;;;15298:120;15381:31;15406:5;15381:31;;15425:307;;15535:38;15567:5;15535:38;;;15590:6;15585:3;15578:19;15602:63;15658:6;15651:4;15646:3;15642:14;15635:4;15628:5;15624:16;15602:63;;;15697:29;15719:6;15697:29;;;15677:50;;;15690:4;15677:50;;15515:217;-1:-1;;;15515:217;16046:306;16211:2;16199:15;;16248:66;16243:2;16234:12;;16227:88;16343:2;16334:12;;16192:160;16361:306;16526:2;16514:15;;16563:66;16558:2;16549:12;;16542:88;16658:2;16649:12;;16507:160;16676:306;16841:2;16829:15;;16878:66;16873:2;16864:12;;16857:88;16973:2;16964:12;;16822:160;16991:306;17156:2;17144:15;;17193:66;17188:2;17179:12;;17172:88;17288:2;17279:12;;17137:160;17306:306;17471:2;17459:15;;17508:66;17503:2;17494:12;;17487:88;17603:2;17594:12;;17452:160;17621:306;17786:2;17774:15;;17823:66;17818:2;17809:12;;17802:88;17918:2;17909:12;;17767:160;17936:407;18101:2;18089:15;;18138:66;18133:2;18124:12;;18117:88;18239:66;18234:2;18225:12;;18218:88;18334:2;18325:12;;18082:261;18352:306;18517:2;18505:15;;18554:66;18549:2;18540:12;;18533:88;18649:2;18640:12;;18498:160;18667:306;18832:2;18820:15;;18869:66;18864:2;18855:12;;18848:88;18964:2;18955:12;;18813:160;18982:407;19147:2;19135:15;;19184:66;19179:2;19170:12;;19163:88;19285:66;19280:2;19271:12;;19264:88;19380:2;19371:12;;19128:261;19398:306;19563:2;19551:15;;19600:66;19595:2;19586:12;;19579:88;19695:2;19686:12;;19544:160;19713:306;19878:2;19866:15;;19915:66;19910:2;19901:12;;19894:88;20010:2;20001:12;;19859:160;20028:407;20193:2;20181:15;;20230:66;20225:2;20216:12;;20209:88;20331:66;20326:2;20317:12;;20310:88;20426:2;20417:12;;20174:261;20570:213;20688:2;20673:18;;20702:71;20677:9;20746:6;20702:71;;20790:213;20908:2;20893:18;;20922:71;20897:9;20966:6;20922:71;;21010:407;21201:2;21215:47;;;21186:18;;21276:131;21186:18;21276:131;;21424:407;21615:2;21629:47;;;21600:18;;21690:131;21600:18;21690:131;;21838:407;22029:2;22043:47;;;22014:18;;22104:131;22014:18;22104:131;;22252:407;22443:2;22457:47;;;22428:18;;22518:131;22428:18;22518:131;;22666:407;22857:2;22871:47;;;22842:18;;22932:131;22842:18;22932:131;;23080:407;23271:2;23285:47;;;23256:18;;23346:131;23256:18;23346:131;;23494:407;23685:2;23699:47;;;23670:18;;23760:131;23670:18;23760:131;;23908:407;24099:2;24113:47;;;24084:18;;24174:131;24084:18;24174:131;;24322:407;24513:2;24527:47;;;24498:18;;24588:131;24498:18;24588:131;;24736:407;24927:2;24941:47;;;24912:18;;25002:131;24912:18;25002:131;;25150:407;25341:2;25355:47;;;25326:18;;25416:131;25326:18;25416:131;;25564:407;25755:2;25769:47;;;25740:18;;25830:131;25740:18;25830:131;;25978:407;26169:2;26183:47;;;26154:18;;26244:131;26154:18;26244:131;;26392:707;26626:3;26611:19;;26641:71;26615:9;26685:6;26641:71;;;26723:72;26791:2;26780:9;26776:18;26767:6;26723:72;;;26843:9;26837:4;26833:20;26828:2;26817:9;26813:18;26806:48;26868:72;26935:4;26926:6;26868:72;;;26860:80;;26988:9;26982:4;26978:20;26973:2;26962:9;26958:18;26951:48;27013:76;27084:4;27075:6;27013:76;;;27005:84;26597:502;-1:-1;;;;;;26597:502;27106:256;27168:2;27162:9;27194:17;;;27269:18;27254:34;;27290:22;;;27251:62;27248:2;;;27326:1;27323;27316:12;27248:2;27342;27335:22;27146:216;;-1:-1;27146:216;27369:263;;27533:18;27525:6;27522:30;27519:2;;;27565:1;27562;27555:12;27519:2;-1:-1;27594:4;27582:17;;;27612:15;;27456:176;28468:254;;28607:18;28599:6;28596:30;28593:2;;;28639:1;28636;28629:12;28593:2;-1:-1;28712:4;28683;28660:17;;;;28679:9;28656:33;28702:15;;28530:192;28994:87;29064:12;;29048:33;29186:105;;29255:31;29280:5;29255:31;;29298:79;29367:5;29350:27;29384:128;29464:42;29453:54;;29436:76;29890:145;29971:6;29966:3;29961;29948:30;-1:-1;30027:1;30009:16;;30002:27;29941:94;30044:268;30109:1;30116:101;30130:6;30127:1;30124:13;30116:101;;;30197:11;;;30191:18;30178:11;;;30171:39;30152:2;30145:10;30116:101;;;30232:6;30229:1;30226:13;30223:2;;;30297:1;30288:6;30283:3;30279:16;30272:27;30223:2;30093:219;;;;;30320:97;30408:2;30388:14;30404:7;30384:28;;30368:49" + } + } + }, + "sources": { + "src/Coordinator.sol": { + "id": 0 + }, + "src/libs/LibConstants.sol": { + "id": 8 + }, + "src/interfaces/ITransactions.sol": { + "id": 7 + }, + "src/MixinSignatureValidator.sol": { + "id": 3 + }, + "@0x/contracts-utils/contracts/src/LibBytes.sol": { + "id": 22 + }, + "src/mixins/MSignatureValidator.sol": { + "id": 13 + }, + "src/interfaces/ISignatureValidator.sol": { + "id": 6 + }, + "src/MixinCoordinatorApprovalVerifier.sol": { + "id": 1 + }, + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": { + "id": 19 + }, + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": { + "id": 20 + }, + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": { + "id": 18 + }, + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": { + "id": 21 + }, + "src/libs/LibCoordinatorApproval.sol": { + "id": 9 + }, + "src/libs/LibEIP712Domain.sol": { + "id": 10 + }, + "src/libs/LibZeroExTransaction.sol": { + "id": 11 + }, + "src/mixins/MCoordinatorApprovalVerifier.sol": { + "id": 12 + }, + "src/interfaces/ICoordinatorApprovalVerifier.sol": { + "id": 4 + }, + "src/MixinCoordinatorCore.sol": { + "id": 2 + }, + "src/interfaces/ICoordinatorCore.sol": { + "id": 5 + } + }, + "sourceCodes": { + "src/Coordinator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibConstants.sol\";\nimport \"./MixinSignatureValidator.sol\";\nimport \"./MixinCoordinatorApprovalVerifier.sol\";\nimport \"./MixinCoordinatorCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract Coordinator is\n LibConstants,\n MixinSignatureValidator,\n MixinCoordinatorApprovalVerifier,\n MixinCoordinatorCore\n{\n constructor (address _exchange)\n public\n LibConstants(_exchange)\n {}\n}\n", + "src/libs/LibConstants.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ITransactions.sol\";\n\n\ncontract LibConstants {\n\n // solhint-disable-next-line var-name-mixedcase\n ITransactions internal EXCHANGE;\n\n constructor (address _exchange)\n public\n {\n EXCHANGE = ITransactions(_exchange);\n }\n}\n", + "src/interfaces/ITransactions.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\npragma solidity ^0.5.3;\n\n\ncontract ITransactions {\n\n /// @dev Executes an exchange method call in the context of signer.\n /// @param salt Arbitrary number to ensure uniqueness of transaction hash.\n /// @param signerAddress Address of transaction signer.\n /// @param data AbiV2 encoded calldata.\n /// @param signature Proof of signer transaction by signer.\n function executeTransaction(\n uint256 salt,\n address signerAddress,\n bytes calldata data,\n bytes calldata signature\n )\n external;\n}\n", + "src/MixinSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\n\n\ncontract MixinSignatureValidator is\n MSignatureValidator\n{\n using LibBytes for bytes;\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress)\n {\n require(\n signature.length > 0,\n \"LENGTH_GREATER_THAN_0_REQUIRED\"\n );\n\n // Pop last byte off of signature byte array.\n uint8 signatureTypeRaw = uint8(signature.popLastByte());\n\n // Ensure signature is supported\n require(\n signatureTypeRaw < uint8(SignatureType.NSignatureTypes),\n \"SIGNATURE_UNSUPPORTED\"\n );\n\n SignatureType signatureType = SignatureType(signatureTypeRaw);\n\n // Always illegal signature.\n // This is always an implicit option since a signer can create a\n // signature array with invalid type or length. We may as well make\n // it an explicit option. This aids testing and analysis. It is\n // also the initialization value for the enum type.\n if (signatureType == SignatureType.Illegal) {\n revert(\"SIGNATURE_ILLEGAL\");\n\n // Signature using EIP712\n } else if (signatureType == SignatureType.EIP712) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n hash,\n v,\n r,\n s\n );\n return signerAddress;\n\n // Signed using web3.eth_sign\n } else if (signatureType == SignatureType.EthSign) {\n require(\n signature.length == 65,\n \"LENGTH_65_REQUIRED\"\n );\n uint8 v = uint8(signature[0]);\n bytes32 r = signature.readBytes32(1);\n bytes32 s = signature.readBytes32(33);\n signerAddress = ecrecover(\n keccak256(abi.encodePacked(\n \"\\x19Ethereum Signed Message:\\n32\",\n hash\n )),\n v,\n r,\n s\n );\n return signerAddress;\n }\n\n // Anything else is illegal (We do not return false because\n // the signature may actually be valid, just not in a format\n // that we currently support. In this case returning false\n // may lead the caller to incorrectly believe that the\n // signature was invalid.)\n revert(\"SIGNATURE_UNSUPPORTED\");\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibBytes.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\nlibrary LibBytes {\n\n using LibBytes for bytes;\n\n /// @dev Gets the memory address for a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of byte array. This\n /// points to the header of the byte array which contains\n /// the length.\n function rawAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := input\n }\n return memoryAddress;\n }\n \n /// @dev Gets the memory address for the contents of a byte array.\n /// @param input Byte array to lookup.\n /// @return memoryAddress Memory address of the contents of the byte array.\n function contentAddress(bytes memory input)\n internal\n pure\n returns (uint256 memoryAddress)\n {\n assembly {\n memoryAddress := add(input, 32)\n }\n return memoryAddress;\n }\n\n /// @dev Copies `length` bytes from memory location `source` to `dest`.\n /// @param dest memory address to copy bytes to.\n /// @param source memory address to copy bytes from.\n /// @param length number of bytes to copy.\n function memCopy(\n uint256 dest,\n uint256 source,\n uint256 length\n )\n internal\n pure\n {\n if (length < 32) {\n // Handle a partial word by reading destination and masking\n // off the bits we are interested in.\n // This correctly handles overlap, zero lengths and source == dest\n assembly {\n let mask := sub(exp(256, sub(32, length)), 1)\n let s := and(mload(source), not(mask))\n let d := and(mload(dest), mask)\n mstore(dest, or(s, d))\n }\n } else {\n // Skip the O(length) loop when source == dest.\n if (source == dest) {\n return;\n }\n\n // For large copies we copy whole words at a time. The final\n // word is aligned to the end of the range (instead of after the\n // previous) to handle partial words. So a copy will look like this:\n //\n // ####\n // ####\n // ####\n // ####\n //\n // We handle overlap in the source and destination range by\n // changing the copying direction. This prevents us from\n // overwriting parts of source that we still need to copy.\n //\n // This correctly handles source == dest\n //\n if (source > dest) {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because it\n // is easier to compare with in the loop, and these\n // are also the addresses we need for copying the\n // last bytes.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the last 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the last bytes in\n // source already due to overlap.\n let last := mload(sEnd)\n\n // Copy whole words front to back\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} lt(source, sEnd) {} {\n mstore(dest, mload(source))\n source := add(source, 32)\n dest := add(dest, 32)\n }\n \n // Write the last 32 bytes\n mstore(dEnd, last)\n }\n } else {\n assembly {\n // We subtract 32 from `sEnd` and `dEnd` because those\n // are the starting points when copying a word at the end.\n length := sub(length, 32)\n let sEnd := add(source, length)\n let dEnd := add(dest, length)\n\n // Remember the first 32 bytes of source\n // This needs to be done here and not after the loop\n // because we may have overwritten the first bytes in\n // source already due to overlap.\n let first := mload(source)\n\n // Copy whole words back to front\n // We use a signed comparisson here to allow dEnd to become\n // negative (happens when source and dest < 32). Valid\n // addresses in local memory will never be larger than\n // 2**255, so they can be safely re-interpreted as signed.\n // Note: the first check is always true,\n // this could have been a do-while loop.\n // solhint-disable-next-line no-empty-blocks\n for {} slt(dest, dEnd) {} {\n mstore(dEnd, mload(sEnd))\n sEnd := sub(sEnd, 32)\n dEnd := sub(dEnd, 32)\n }\n \n // Write the first 32 bytes\n mstore(dest, first)\n }\n }\n }\n }\n\n /// @dev Returns a slices from a byte array.\n /// @param b The byte array to take a slice from.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n function slice(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure and copy contents\n result = new bytes(to - from);\n memCopy(\n result.contentAddress(),\n b.contentAddress() + from,\n result.length\n );\n return result;\n }\n \n /// @dev Returns a slice from a byte array without preserving the input.\n /// @param b The byte array to take a slice from. Will be destroyed in the process.\n /// @param from The starting index for the slice (inclusive).\n /// @param to The final index for the slice (exclusive).\n /// @return result The slice containing bytes at indices [from, to)\n /// @dev When `from == 0`, the original array will match the slice. In other cases its state will be corrupted.\n function sliceDestructive(\n bytes memory b,\n uint256 from,\n uint256 to\n )\n internal\n pure\n returns (bytes memory result)\n {\n require(\n from <= to,\n \"FROM_LESS_THAN_TO_REQUIRED\"\n );\n require(\n to <= b.length,\n \"TO_LESS_THAN_LENGTH_REQUIRED\"\n );\n \n // Create a new bytes structure around [from, to) in-place.\n assembly {\n result := add(b, from)\n mstore(result, sub(to, from))\n }\n return result;\n }\n\n /// @dev Pops the last byte off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The byte that was popped off.\n function popLastByte(bytes memory b)\n internal\n pure\n returns (bytes1 result)\n {\n require(\n b.length > 0,\n \"GREATER_THAN_ZERO_LENGTH_REQUIRED\"\n );\n\n // Store last byte.\n result = b[b.length - 1];\n\n assembly {\n // Decrement length of byte array.\n let newLen := sub(mload(b), 1)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Pops the last 20 bytes off of a byte array by modifying its length.\n /// @param b Byte array that will be modified.\n /// @return The 20 byte address that was popped off.\n function popLast20Bytes(bytes memory b)\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= 20,\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Store last 20 bytes.\n result = readAddress(b, b.length - 20);\n\n assembly {\n // Subtract 20 from byte array length.\n let newLen := sub(mload(b), 20)\n mstore(b, newLen)\n }\n return result;\n }\n\n /// @dev Tests equality of two byte arrays.\n /// @param lhs First byte array to compare.\n /// @param rhs Second byte array to compare.\n /// @return True if arrays are the same. False otherwise.\n function equals(\n bytes memory lhs,\n bytes memory rhs\n )\n internal\n pure\n returns (bool equal)\n {\n // Keccak gas cost is 30 + numWords * 6. This is a cheap way to compare.\n // We early exit on unequal lengths, but keccak would also correctly\n // handle this.\n return lhs.length == rhs.length && keccak256(lhs) == keccak256(rhs);\n }\n\n /// @dev Reads an address from a position in a byte array.\n /// @param b Byte array containing an address.\n /// @param index Index in byte array of address.\n /// @return address from byte array.\n function readAddress(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (address result)\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Read address from array memory\n assembly {\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 20-byte mask to obtain address\n result := and(mload(add(b, index)), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n return result;\n }\n\n /// @dev Writes an address into a specific position in a byte array.\n /// @param b Byte array to insert address into.\n /// @param index Index in byte array of address.\n /// @param input Address to put into byte array.\n function writeAddress(\n bytes memory b,\n uint256 index,\n address input\n )\n internal\n pure\n {\n require(\n b.length >= index + 20, // 20 is length of address\n \"GREATER_OR_EQUAL_TO_20_LENGTH_REQUIRED\"\n );\n\n // Add offset to index:\n // 1. Arrays are prefixed by 32-byte length parameter (add 32 to index)\n // 2. Account for size difference between address length and 32-byte storage word (subtract 12 from index)\n index += 20;\n\n // Store address into array memory\n assembly {\n // The address occupies 20 bytes and mstore stores 32 bytes.\n // First fetch the 32-byte word where we'll be storing the address, then\n // apply a mask so we have only the bytes in the word that the address will not occupy.\n // Then combine these bytes with the address and store the 32 bytes back to memory with mstore.\n\n // 1. Add index to address of bytes array\n // 2. Load 32-byte word from memory\n // 3. Apply 12-byte mask to obtain extra bytes occupying word of memory where we'll store the address\n let neighbors := and(\n mload(add(b, index)),\n 0xffffffffffffffffffffffff0000000000000000000000000000000000000000\n )\n \n // Make sure input address is clean.\n // (Solidity does not guarantee this)\n input := and(input, 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Store the neighbors and address into memory\n mstore(add(b, index), xor(input, neighbors))\n }\n }\n\n /// @dev Reads a bytes32 value from a position in a byte array.\n /// @param b Byte array containing a bytes32 value.\n /// @param index Index in byte array of bytes32 value.\n /// @return bytes32 value from byte array.\n function readBytes32(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes32 result)\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n result := mload(add(b, index))\n }\n return result;\n }\n\n /// @dev Writes a bytes32 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes32 to put into byte array.\n function writeBytes32(\n bytes memory b,\n uint256 index,\n bytes32 input\n )\n internal\n pure\n {\n require(\n b.length >= index + 32,\n \"GREATER_OR_EQUAL_TO_32_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 256 bit length parameter\n index += 32;\n\n // Read the bytes32 from array memory\n assembly {\n mstore(add(b, index), input)\n }\n }\n\n /// @dev Reads a uint256 value from a position in a byte array.\n /// @param b Byte array containing a uint256 value.\n /// @param index Index in byte array of uint256 value.\n /// @return uint256 value from byte array.\n function readUint256(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (uint256 result)\n {\n result = uint256(readBytes32(b, index));\n return result;\n }\n\n /// @dev Writes a uint256 into a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input uint256 to put into byte array.\n function writeUint256(\n bytes memory b,\n uint256 index,\n uint256 input\n )\n internal\n pure\n {\n writeBytes32(b, index, bytes32(input));\n }\n\n /// @dev Reads an unpadded bytes4 value from a position in a byte array.\n /// @param b Byte array containing a bytes4 value.\n /// @param index Index in byte array of bytes4 value.\n /// @return bytes4 value from byte array.\n function readBytes4(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes4 result)\n {\n require(\n b.length >= index + 4,\n \"GREATER_OR_EQUAL_TO_4_LENGTH_REQUIRED\"\n );\n\n // Arrays are prefixed by a 32 byte length field\n index += 32;\n\n // Read the bytes4 from array memory\n assembly {\n result := mload(add(b, index))\n // Solidity does not require us to clean the trailing bytes.\n // We do it anyway\n result := and(result, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)\n }\n return result;\n }\n\n /// @dev Reads nested bytes from a specific position.\n /// @dev NOTE: the returned value overlaps with the input value.\n /// Both should be treated as immutable.\n /// @param b Byte array containing nested bytes.\n /// @param index Index of nested bytes.\n /// @return result Nested bytes.\n function readBytesWithLength(\n bytes memory b,\n uint256 index\n )\n internal\n pure\n returns (bytes memory result)\n {\n // Read length of nested bytes\n uint256 nestedBytesLength = readUint256(b, index);\n index += 32;\n\n // Assert length of is valid, given\n // length of nested bytes\n require(\n b.length >= index + nestedBytesLength,\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n \n // Return a pointer to the byte array as it exists inside `b`\n assembly {\n result := add(b, index)\n }\n return result;\n }\n\n /// @dev Inserts bytes at a specific position in a byte array.\n /// @param b Byte array to insert into.\n /// @param index Index in byte array of .\n /// @param input bytes to insert.\n function writeBytesWithLength(\n bytes memory b,\n uint256 index,\n bytes memory input\n )\n internal\n pure\n {\n // Assert length of is valid, given\n // length of input\n require(\n b.length >= index + 32 + input.length, // 32 bytes to store length\n \"GREATER_OR_EQUAL_TO_NESTED_BYTES_LENGTH_REQUIRED\"\n );\n\n // Copy into \n memCopy(\n b.contentAddress() + index,\n input.rawAddress(), // includes length of \n input.length + 32 // +32 bytes to store length\n );\n }\n\n /// @dev Performs a deep copy of a byte array onto another byte array of greater than or equal length.\n /// @param dest Byte array that will be overwritten with source bytes.\n /// @param source Byte array to copy onto dest bytes.\n function deepCopyBytes(\n bytes memory dest,\n bytes memory source\n )\n internal\n pure\n {\n uint256 sourceLen = source.length;\n // Dest length must be >= source length, or some bytes would not be copied.\n require(\n dest.length >= sourceLen,\n \"GREATER_OR_EQUAL_TO_SOURCE_BYTES_LENGTH_REQUIRED\"\n );\n memCopy(\n dest.contentAddress(),\n source.contentAddress(),\n sourceLen\n );\n }\n}\n", + "src/mixins/MSignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"../interfaces/ISignatureValidator.sol\";\n\n\ncontract MSignatureValidator is\n ISignatureValidator\n{\n // Allowed signature types.\n enum SignatureType {\n Illegal, // 0x00, default value\n EIP712, // 0x01\n EthSign, // 0x02\n NSignatureTypes // 0x03, number of signature types. Always leave at end.\n }\n}\n", + "src/interfaces/ISignatureValidator.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract ISignatureValidator {\n\n /// @dev Recovers the address of a signer given a hash and signature.\n /// @param hash Any 32 byte hash.\n /// @param signature Proof that the hash has been signed by signer.\n function getSignerAddress(bytes32 hash, bytes memory signature)\n public\n pure\n returns (address signerAddress);\n}\n", + "src/MixinCoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol\";\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibBytes.sol\";\nimport \"@0x/contracts-utils/contracts/src/LibAddressArray.sol\";\nimport \"./libs/LibCoordinatorApproval.sol\";\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./mixins/MSignatureValidator.sol\";\nimport \"./mixins/MCoordinatorApprovalVerifier.sol\";\n\n\n// solhint-disable avoid-tx-origin\ncontract MixinCoordinatorApprovalVerifier is\n LibExchangeSelectors,\n LibCoordinatorApproval,\n LibZeroExTransaction,\n MSignatureValidator,\n MCoordinatorApprovalVerifier\n{\n using LibBytes for bytes;\n using LibAddressArray for address[];\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidCoordinatorApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Get the orders from the the Exchange calldata in the 0x transaction\n LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data);\n\n // No approval is required for non-fill methods\n if (orders.length > 0) {\n // Revert if approval is invalid for transaction orders\n assertValidTransactionOrdersApproval(\n transaction,\n orders,\n txOrigin,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n }\n }\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view\n {\n // Verify that Ethereum tx signer is the same as the approved txOrigin\n require(\n tx.origin == txOrigin,\n \"INVALID_ORIGIN\"\n );\n\n // Hash 0x transaction\n bytes32 transactionHash = getTransactionHash(transaction);\n\n // Create empty list of approval signers\n address[] memory approvalSignerAddresses = new address[](0);\n\n uint256 signaturesLength = approvalSignatures.length;\n for (uint256 i = 0; i != signaturesLength; i++) {\n // Create approval message\n uint256 currentApprovalExpirationTimeSeconds = approvalExpirationTimeSeconds[i];\n CoordinatorApproval memory approval = CoordinatorApproval({\n txOrigin: txOrigin,\n transactionHash: transactionHash,\n transactionSignature: transactionSignature,\n approvalExpirationTimeSeconds: currentApprovalExpirationTimeSeconds\n });\n\n // Ensure approval has not expired\n require(\n // solhint-disable-next-line not-rely-on-time\n currentApprovalExpirationTimeSeconds > block.timestamp,\n \"APPROVAL_EXPIRED\"\n );\n\n // Hash approval message and recover signer address\n bytes32 approvalHash = getCoordinatorApprovalHash(approval);\n address approvalSignerAddress = getSignerAddress(approvalHash, approvalSignatures[i]);\n \n // Add approval signer to list of signers\n approvalSignerAddresses = approvalSignerAddresses.append(approvalSignerAddress);\n }\n \n // Ethereum transaction signer gives implicit signature of approval\n approvalSignerAddresses = approvalSignerAddresses.append(tx.origin);\n \n uint256 ordersLength = orders.length;\n for (uint256 i = 0; i != ordersLength; i++) {\n // Do not check approval if the order's senderAddress is null\n if (orders[i].senderAddress == address(0)) {\n continue;\n }\n\n // Ensure feeRecipient of order has approved this 0x transaction\n address approverAddress = orders[i].feeRecipientAddress;\n bool isOrderApproved = approvalSignerAddresses.contains(approverAddress);\n require(\n isOrderApproved,\n \"INVALID_APPROVAL_SIGNATURE\"\n );\n }\n }\n\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders)\n {\n bytes4 selector = data.readBytes4(0);\n if (\n selector == FILL_ORDER_SELECTOR ||\n selector == FILL_ORDER_NO_THROW_SELECTOR ||\n selector == FILL_OR_KILL_ORDER_SELECTOR\n ) {\n // Decode single order\n (LibOrder.Order memory order) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order)\n );\n orders = new LibOrder.Order[](1);\n orders[0] = order;\n } else if (\n selector == BATCH_FILL_ORDERS_SELECTOR ||\n selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||\n selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_SELECTOR ||\n selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR ||\n selector == MARKET_SELL_ORDERS_SELECTOR ||\n selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR\n ) {\n // Decode all orders\n // solhint-disable indent\n (orders) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order[])\n );\n } else if (selector == MATCH_ORDERS_SELECTOR) {\n // Decode left and right orders\n (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(\n data.slice(4, data.length),\n (LibOrder.Order, LibOrder.Order)\n );\n\n // Create array of orders\n orders = new LibOrder.Order[](2);\n orders[0] = leftOrder;\n orders[1] = rightOrder;\n }\n return orders;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibExchangeSelectors {\n\n // solhint-disable max-line-length\n // allowedValidators\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR = 0x7b8e3514;\n bytes4 constant internal ALLOWED_VALIDATORS_SELECTOR_GENERATOR = bytes4(keccak256(\"allowedValidators(address,address)\"));\n\n // assetProxies\n bytes4 constant internal ASSET_PROXIES_SELECTOR = 0x3fd3c997;\n bytes4 constant internal ASSET_PROXIES_SELECTOR_GENERATOR = bytes4(keccak256(\"assetProxies(bytes4)\"));\n\n // batchCancelOrders\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR = 0x4ac14782;\n bytes4 constant internal BATCH_CANCEL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchCancelOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // batchFillOrKillOrders\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR = 0x4d0ae546;\n bytes4 constant internal BATCH_FILL_OR_KILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrKillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrders\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR = 0x297bb70b;\n bytes4 constant internal BATCH_FILL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // batchFillOrdersNoThrow\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR = 0x50dde190;\n bytes4 constant internal BATCH_FILL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"batchFillOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256[],bytes[])\"));\n\n // cancelOrder\n bytes4 constant internal CANCEL_ORDER_SELECTOR = 0xd46b02c3;\n bytes4 constant internal CANCEL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // cancelOrdersUpTo\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR = 0x4f9559b1;\n bytes4 constant internal CANCEL_ORDERS_UP_TO_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelOrdersUpTo(uint256)\"));\n\n // cancelled\n bytes4 constant internal CANCELLED_SELECTOR = 0x2ac12622;\n bytes4 constant internal CANCELLED_SELECTOR_GENERATOR = bytes4(keccak256(\"cancelled(bytes32)\"));\n\n // currentContextAddress\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR = 0xeea086ba;\n bytes4 constant internal CURRENT_CONTEXT_ADDRESS_SELECTOR_GENERATOR = bytes4(keccak256(\"currentContextAddress()\"));\n\n // executeTransaction\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR = 0xbfc8bfce;\n bytes4 constant internal EXECUTE_TRANSACTION_SELECTOR_GENERATOR = bytes4(keccak256(\"executeTransaction(uint256,address,bytes,bytes)\"));\n\n // fillOrKillOrder\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR = 0x64a3bc15;\n bytes4 constant internal FILL_OR_KILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrKillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrder\n bytes4 constant internal FILL_ORDER_SELECTOR = 0xb4be83d5;\n bytes4 constant internal FILL_ORDER_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // fillOrderNoThrow\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR = 0x3e228bae;\n bytes4 constant internal FILL_ORDER_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"fillOrderNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)\"));\n\n // filled\n bytes4 constant internal FILLED_SELECTOR = 0x288cdc91;\n bytes4 constant internal FILLED_SELECTOR_GENERATOR = bytes4(keccak256(\"filled(bytes32)\"));\n\n // getAssetProxy\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR = 0x60704108;\n bytes4 constant internal GET_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"getAssetProxy(bytes4)\"));\n\n // getOrderInfo\n bytes4 constant internal GET_ORDER_INFO_SELECTOR = 0xc75e0a81;\n bytes4 constant internal GET_ORDER_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrderInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes))\"));\n\n // getOrdersInfo\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR = 0x7e9d74dc;\n bytes4 constant internal GET_ORDERS_INFO_SELECTOR_GENERATOR = bytes4(keccak256(\"getOrdersInfo((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[])\"));\n\n // isValidSignature\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR = 0x93634702;\n bytes4 constant internal IS_VALID_SIGNATURE_SELECTOR_GENERATOR = bytes4(keccak256(\"isValidSignature(bytes32,address,bytes)\"));\n\n // marketBuyOrders\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR = 0xe5fa431b;\n bytes4 constant internal MARKET_BUY_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketBuyOrdersNoThrow\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR = 0xa3e20380;\n bytes4 constant internal MARKET_BUY_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketBuyOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrders\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR = 0x7e1d9808;\n bytes4 constant internal MARKET_SELL_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // marketSellOrdersNoThrow\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR = 0xdd1c7d18;\n bytes4 constant internal MARKET_SELL_ORDERS_NO_THROW_SELECTOR_GENERATOR = bytes4(keccak256(\"marketSellOrdersNoThrow((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],uint256,bytes[])\"));\n\n // matchOrders\n bytes4 constant internal MATCH_ORDERS_SELECTOR = 0x3c28d861;\n bytes4 constant internal MATCH_ORDERS_SELECTOR_GENERATOR = bytes4(keccak256(\"matchOrders((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),(address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes,bytes)\"));\n\n // orderEpoch\n bytes4 constant internal ORDER_EPOCH_SELECTOR = 0xd9bfa73e;\n bytes4 constant internal ORDER_EPOCH_SELECTOR_GENERATOR = bytes4(keccak256(\"orderEpoch(address,address)\"));\n\n // owner\n bytes4 constant internal OWNER_SELECTOR = 0x8da5cb5b;\n bytes4 constant internal OWNER_SELECTOR_GENERATOR = bytes4(keccak256(\"owner()\"));\n\n // preSign\n bytes4 constant internal PRE_SIGN_SELECTOR = 0x3683ef8e;\n bytes4 constant internal PRE_SIGN_SELECTOR_GENERATOR = bytes4(keccak256(\"preSign(bytes32,address,bytes)\"));\n\n // preSigned\n bytes4 constant internal PRE_SIGNED_SELECTOR = 0x82c174d0;\n bytes4 constant internal PRE_SIGNED_SELECTOR_GENERATOR = bytes4(keccak256(\"preSigned(bytes32,address)\"));\n\n // registerAssetProxy\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR = 0xc585bb93;\n bytes4 constant internal REGISTER_ASSET_PROXY_SELECTOR_GENERATOR = bytes4(keccak256(\"registerAssetProxy(address)\"));\n\n // setSignatureValidatorApproval\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR = 0x77fcce68;\n bytes4 constant internal SET_SIGNATURE_VALIDATOR_APPROVAL_SELECTOR_GENERATOR = bytes4(keccak256(\"setSignatureValidatorApproval(address,bool)\"));\n\n // transactions\n bytes4 constant internal TRANSACTIONS_SELECTOR = 0x642f2eaf;\n bytes4 constant internal TRANSACTIONS_SELECTOR_GENERATOR = bytes4(keccak256(\"transactions(bytes32)\"));\n\n // transferOwnership\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR = 0xf2fde38b;\n bytes4 constant internal TRANSFER_OWNERSHIP_SELECTOR_GENERATOR = bytes4(keccak256(\"transferOwnership(address)\"));\n}", + "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712.sol\";\n\n\ncontract LibOrder is\n LibEIP712\n{\n // Hash for the EIP712 Order Schema\n bytes32 constant internal EIP712_ORDER_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"Order(\",\n \"address makerAddress,\",\n \"address takerAddress,\",\n \"address feeRecipientAddress,\",\n \"address senderAddress,\",\n \"uint256 makerAssetAmount,\",\n \"uint256 takerAssetAmount,\",\n \"uint256 makerFee,\",\n \"uint256 takerFee,\",\n \"uint256 expirationTimeSeconds,\",\n \"uint256 salt,\",\n \"bytes makerAssetData,\",\n \"bytes takerAssetData\",\n \")\"\n ));\n\n // A valid order remains fillable until it is expired, fully filled, or cancelled.\n // An order's state is unaffected by external factors, like account balances.\n enum OrderStatus {\n INVALID, // Default value\n INVALID_MAKER_ASSET_AMOUNT, // Order does not have a valid maker asset amount\n INVALID_TAKER_ASSET_AMOUNT, // Order does not have a valid taker asset amount\n FILLABLE, // Order is fillable\n EXPIRED, // Order has already expired\n FULLY_FILLED, // Order is fully filled\n CANCELLED // Order has been cancelled\n }\n\n // solhint-disable max-line-length\n struct Order {\n address makerAddress; // Address that created the order. \n address takerAddress; // Address that is allowed to fill the order. If set to 0, any address is allowed to fill the order. \n address feeRecipientAddress; // Address that will recieve fees when order is filled. \n address senderAddress; // Address that is allowed to call Exchange contract methods that affect this order. If set to 0, any address is allowed to call these methods.\n uint256 makerAssetAmount; // Amount of makerAsset being offered by maker. Must be greater than 0. \n uint256 takerAssetAmount; // Amount of takerAsset being bid on by maker. Must be greater than 0. \n uint256 makerFee; // Amount of ZRX paid to feeRecipient by maker when order is filled. If set to 0, no transfer of ZRX from maker to feeRecipient will be attempted.\n uint256 takerFee; // Amount of ZRX paid to feeRecipient by taker when order is filled. If set to 0, no transfer of ZRX from taker to feeRecipient will be attempted.\n uint256 expirationTimeSeconds; // Timestamp in seconds at which order expires. \n uint256 salt; // Arbitrary number to facilitate uniqueness of the order's hash. \n bytes makerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring makerAsset. The last byte references the id of this proxy.\n bytes takerAssetData; // Encoded data that can be decoded by a specified proxy contract when transferring takerAsset. The last byte references the id of this proxy.\n }\n // solhint-enable max-line-length\n\n struct OrderInfo {\n uint8 orderStatus; // Status that describes order's validity and fillability.\n bytes32 orderHash; // EIP712 hash of the order (see LibOrder.getOrderHash).\n uint256 orderTakerAssetFilledAmount; // Amount of order that has already been filled.\n }\n\n /// @dev Calculates Keccak-256 hash of the order.\n /// @param order The order structure.\n /// @return Keccak-256 EIP712 hash of the order.\n function getOrderHash(Order memory order)\n internal\n view\n returns (bytes32 orderHash)\n {\n orderHash = hashEIP712Message(hashOrder(order));\n return orderHash;\n }\n\n /// @dev Calculates EIP712 hash of the order.\n /// @param order The order structure.\n /// @return EIP712 hash of the order.\n function hashOrder(Order memory order)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH;\n bytes32 makerAssetDataHash = keccak256(order.makerAssetData);\n bytes32 takerAssetDataHash = keccak256(order.takerAssetData);\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ORDER_SCHEMA_HASH,\n // bytes32(order.makerAddress),\n // bytes32(order.takerAddress),\n // bytes32(order.feeRecipientAddress),\n // bytes32(order.senderAddress),\n // order.makerAssetAmount,\n // order.takerAssetAmount,\n // order.makerFee,\n // order.takerFee,\n // order.expirationTimeSeconds,\n // order.salt,\n // keccak256(order.makerAssetData),\n // keccak256(order.takerAssetData)\n // ));\n\n assembly {\n // Calculate memory addresses that will be swapped out before hashing\n let pos1 := sub(order, 32)\n let pos2 := add(order, 320)\n let pos3 := add(order, 352)\n\n // Backup\n let temp1 := mload(pos1)\n let temp2 := mload(pos2)\n let temp3 := mload(pos3)\n \n // Hash in place\n mstore(pos1, schemaHash)\n mstore(pos2, makerAssetDataHash)\n mstore(pos3, takerAssetDataHash)\n result := keccak256(pos1, 416)\n \n // Restore\n mstore(pos1, temp1)\n mstore(pos2, temp2)\n mstore(pos3, temp3)\n }\n return result;\n }\n}\n", + "@0x/contracts-exchange-libs/contracts/src/LibEIP712.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712 {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"2\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "@0x/contracts-utils/contracts/src/LibAddressArray.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibBytes.sol\";\n\n\nlibrary LibAddressArray {\n\n /// @dev Append a new address to an array of addresses.\n /// The `addressArray` may need to be reallocated to make space\n /// for the new address. Because of this we return the resulting\n /// memory location of `addressArray`.\n /// @param addressArray Array of addresses.\n /// @param addressToAppend Address to append.\n /// @return Array of addresses: [... addressArray, addressToAppend]\n function append(address[] memory addressArray, address addressToAppend) \n internal\n pure\n returns (address[] memory)\n {\n // Get stats on address array and free memory\n uint256 freeMemPtr = 0;\n uint256 addressArrayBeginPtr = 0;\n uint256 addressArrayEndPtr = 0;\n uint256 addressArrayLength = addressArray.length;\n uint256 addressArrayMemSizeInBytes = 32 + (32 * addressArrayLength);\n assembly {\n freeMemPtr := mload(0x40)\n addressArrayBeginPtr := addressArray\n addressArrayEndPtr := add(addressArray, addressArrayMemSizeInBytes)\n }\n\n // Cases for `freeMemPtr`:\n // `freeMemPtr` == `addressArrayEndPtr`: Nothing occupies memory after `addressArray`\n // `freeMemPtr` > `addressArrayEndPtr`: Some value occupies memory after `addressArray`\n // `freeMemPtr` < `addressArrayEndPtr`: Memory has not been managed properly.\n require(\n freeMemPtr >= addressArrayEndPtr,\n \"INVALID_FREE_MEMORY_PTR\"\n );\n\n // If free memory begins at the end of `addressArray`\n // then we can append `addressToAppend` directly.\n // Otherwise, we must copy the array to free memory\n // before appending new values to it.\n if (freeMemPtr > addressArrayEndPtr) {\n LibBytes.memCopy(freeMemPtr, addressArrayBeginPtr, addressArrayMemSizeInBytes);\n assembly {\n addressArray := freeMemPtr\n addressArrayBeginPtr := addressArray\n }\n }\n\n // Append `addressToAppend`\n addressArrayLength += 1;\n addressArrayMemSizeInBytes += 32;\n addressArrayEndPtr = addressArrayBeginPtr + addressArrayMemSizeInBytes;\n freeMemPtr = addressArrayEndPtr;\n assembly {\n // Store new array length\n mstore(addressArray, addressArrayLength)\n\n // Update `freeMemPtr`\n mstore(0x40, freeMemPtr)\n }\n addressArray[addressArrayLength - 1] = addressToAppend;\n return addressArray;\n }\n\n /// @dev Checks if an address array contains the target address.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return True if the addressArray contains the target.\n function contains(address[] memory addressArray, address target)\n internal\n pure\n returns (bool success)\n {\n assembly {\n\n // Calculate byte length of array\n let arrayByteLen := mul(mload(addressArray), 32)\n // Calculate beginning of array contents\n let arrayContentsStart := add(addressArray, 32)\n // Calclulate end of array contents\n let arrayContentsEnd := add(arrayContentsStart, arrayByteLen)\n\n // Loop through array\n for {let i:= arrayContentsStart} lt(i, arrayContentsEnd) {i := add(i, 32)} {\n\n // Load array element\n let arrayElement := mload(i)\n\n // Return true if array element equals target\n if eq(target, arrayElement) {\n // Set success to true\n success := 1\n // Break loop\n i := arrayContentsEnd\n }\n }\n }\n return success;\n }\n\n /// @dev Finds the index of an address within an array.\n /// @param addressArray Array of addresses.\n /// @param target Address to search for in array.\n /// @return Existence and index of the target in the array.\n function indexOf(address[] memory addressArray, address target)\n internal\n pure\n returns (bool success, uint256 index)\n {\n assembly {\n\n // Calculate byte length of array\n let arrayByteLen := mul(mload(addressArray), 32)\n // Calculate beginning of array contents\n let arrayContentsStart := add(addressArray, 32)\n // Calclulate end of array contents\n let arrayContentsEnd := add(arrayContentsStart, arrayByteLen)\n\n // Loop through array\n for {let i:= arrayContentsStart} lt(i, arrayContentsEnd) {i := add(i, 32)} {\n\n // Load array element\n let arrayElement := mload(i)\n\n // Return true if array element equals target\n if eq(target, arrayElement) {\n // Set success and index\n success := 1\n index := div(i, 32)\n // Break loop\n i := arrayContentsEnd\n }\n }\n }\n return (success, index);\n }\n}\n", + "src/libs/LibCoordinatorApproval.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibCoordinatorApproval is\n LibEIP712Domain\n{\n // Hash for the EIP712 Coordinator approval message\n // keccak256(abi.encodePacked(\n // \"CoordinatorApproval(\",\n // \"address txOrigin,\",\n // \"bytes32 transactionHash,\",\n // \"bytes transactionSignature,\",\n // \"uint256 approvalExpirationTimeSeconds\",\n // \")\"\n // ));\n bytes32 constant internal EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH = 0x2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e05;\n\n struct CoordinatorApproval {\n address txOrigin; // Required signer of Ethereum transaction that is submitting approval.\n bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract.\n bytes transactionSignature; // Signature of the 0x transaction.\n uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires.\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage using the domain separator of this contract.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with the domain separator of this contract.\n function getCoordinatorApprovalHash(CoordinatorApproval memory approval)\n internal\n view\n returns (bytes32 approvalHash)\n {\n approvalHash = hashEIP712Message(hashCoordinatorApproval(approval));\n return approvalHash;\n }\n\n /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage with no domain separator.\n /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval.\n /// @return EIP712 hash of the Coordinator approval message with no domain separator.\n function hashCoordinatorApproval(CoordinatorApproval memory approval)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH;\n bytes memory transactionSignature = approval.transactionSignature;\n address txOrigin = approval.txOrigin;\n bytes32 transactionHash = approval.transactionHash;\n uint256 approvalExpirationTimeSeconds = approval.approvalExpirationTimeSeconds;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH,\n // approval.transactionHash,\n // keccak256(approval.transactionSignature)\n // approval.expiration,\n // ));\n\n assembly {\n // Compute hash of transaction signature\n let transactionSignatureHash := keccak256(add(transactionSignature, 32), mload(transactionSignature))\n \n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), txOrigin) // txOrigin\n mstore(add(memPtr, 64), transactionHash) // transactionHash\n mstore(add(memPtr, 96), transactionSignatureHash) // transactionSignatureHash\n mstore(add(memPtr, 128), approvalExpirationTimeSeconds) // approvalExpirationTimeSeconds\n // Compute hash\n result := keccak256(memPtr, 160)\n }\n return result;\n }\n}\n", + "src/libs/LibEIP712Domain.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\n\ncontract LibEIP712Domain {\n\n // EIP191 header for EIP712 prefix\n string constant internal EIP191_HEADER = \"\\x19\\x01\";\n\n // EIP712 Domain Name value\n string constant internal EIP712_DOMAIN_NAME = \"0x Protocol Coordinator\";\n\n // EIP712 Domain Version value\n string constant internal EIP712_DOMAIN_VERSION = \"1.0.0\";\n\n // Hash of the EIP712 Domain Separator Schema\n bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256(abi.encodePacked(\n \"EIP712Domain(\",\n \"string name,\",\n \"string version,\",\n \"address verifyingContract\",\n \")\"\n ));\n\n // Hash of the EIP712 Domain Separator data\n // solhint-disable-next-line var-name-mixedcase\n bytes32 public EIP712_DOMAIN_HASH;\n\n constructor ()\n public\n {\n EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(\n EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH,\n keccak256(bytes(EIP712_DOMAIN_NAME)),\n keccak256(bytes(EIP712_DOMAIN_VERSION)),\n uint256(address(this))\n ));\n }\n\n /// @dev Calculates EIP712 encoding for a hash struct in this EIP712 Domain.\n /// @param hashStruct The EIP712 hash struct.\n /// @return EIP712 hash applied to this EIP712 Domain.\n function hashEIP712Message(bytes32 hashStruct)\n internal\n view\n returns (bytes32 result)\n {\n bytes32 eip712DomainHash = EIP712_DOMAIN_HASH;\n\n // Assembly for more efficient computing:\n // keccak256(abi.encodePacked(\n // EIP191_HEADER,\n // EIP712_DOMAIN_HASH,\n // hashStruct \n // ));\n\n assembly {\n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, 0x1901000000000000000000000000000000000000000000000000000000000000) // EIP191 header\n mstore(add(memPtr, 2), eip712DomainHash) // EIP712 domain hash\n mstore(add(memPtr, 34), hashStruct) // Hash of struct\n\n // Compute hash\n result := keccak256(memPtr, 66)\n }\n return result;\n }\n}\n", + "src/libs/LibZeroExTransaction.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\n\nimport \"./LibEIP712Domain.sol\";\n\n\ncontract LibZeroExTransaction is\n LibEIP712Domain\n{\n // Hash for the EIP712 0x transaction schema\n // keccak256(abi.encodePacked(\n // \"ZeroExTransaction(\",\n // \"uint256 salt,\",\n // \"address signerAddress,\",\n // \"bytes data\",\n // \")\"\n // ));\n bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = 0x213c6f636f3ea94e701c0adf9b2624aa45a6c694f9a292c094f9a81c24b5df4c;\n\n struct ZeroExTransaction {\n uint256 salt; // Arbitrary number to ensure uniqueness of transaction hash.\n address signerAddress; // Address of transaction signer.\n bytes data; // AbiV2 encoded calldata.\n }\n\n /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with the domain separator of this contract.\n function getTransactionHash(ZeroExTransaction memory transaction)\n internal\n view\n returns (bytes32 transactionHash)\n {\n // Note: this transaction hash will differ from the hash produced by the Exchange contract because it utilizes a different domain hash.\n transactionHash = hashEIP712Message(hashZeroExTransaction(transaction));\n return transactionHash;\n }\n\n /// @dev Calculates EIP712 hash of the 0x transaction with no domain separator.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @return EIP712 hash of the transaction with no domain separator.\n function hashZeroExTransaction(ZeroExTransaction memory transaction)\n internal\n pure\n returns (bytes32 result)\n {\n bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH;\n bytes memory data = transaction.data;\n uint256 salt = transaction.salt;\n address signerAddress = transaction.signerAddress;\n\n // Assembly for more efficiently computing:\n // keccak256(abi.encodePacked(\n // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH,\n // transaction.salt,\n // uint256(transaction.signerAddress),\n // keccak256(transaction.data)\n // ));\n\n assembly {\n // Compute hash of data\n let dataHash := keccak256(add(data, 32), mload(data))\n \n // Load free memory pointer\n let memPtr := mload(64)\n\n mstore(memPtr, schemaHash) // hash of schema\n mstore(add(memPtr, 32), salt) // salt\n mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress\n mstore(add(memPtr, 96), dataHash) // hash of data\n\n // Compute hash\n result := keccak256(memPtr, 128)\n }\n return result;\n }\n}\n", + "src/mixins/MCoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../interfaces/ICoordinatorApprovalVerifier.sol\";\n\n\ncontract MCoordinatorApprovalVerifier is\n ICoordinatorApprovalVerifier\n{\n /// @dev Decodes the orders from Exchange calldata representing any fill method.\n /// @param data Exchange calldata representing a fill method.\n /// @return The orders from the Exchange calldata.\n function decodeFillDataOrders(bytes memory data)\n internal\n pure\n returns (LibOrder.Order[] memory orders);\n}\n", + "src/interfaces/ICoordinatorApprovalVerifier.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"@0x/contracts-exchange-libs/contracts/src/LibOrder.sol\";\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ICoordinatorApprovalVerifier {\n\n /// @dev Validates that the 0x transaction has been approved by all of the feeRecipients\n /// that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function assertValidCoordinatorApprovals(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n\n /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param orders Array of order structs containing order specifications.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order.\n function assertValidTransactionOrdersApproval(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n LibOrder.Order[] memory orders,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n view;\n}\n", + "src/MixinCoordinatorCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"./libs/LibZeroExTransaction.sol\";\nimport \"./libs/LibConstants.sol\";\nimport \"./mixins/MCoordinatorApprovalVerifier.sol\";\nimport \"./interfaces/ICoordinatorCore.sol\";\n\n\ncontract MixinCoordinatorCore is\n LibConstants,\n MCoordinatorApprovalVerifier,\n ICoordinatorCore\n{\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public\n {\n // Validate that the 0x transaction has been approves by each feeRecipient\n assertValidCoordinatorApprovals(\n transaction,\n txOrigin,\n transactionSignature,\n approvalExpirationTimeSeconds,\n approvalSignatures\n );\n\n // Execute the transaction\n EXCHANGE.executeTransaction(\n transaction.salt,\n transaction.signerAddress,\n transaction.data,\n transactionSignature\n );\n }\n}\n", + "src/interfaces/ICoordinatorCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity ^0.5.3;\npragma experimental \"ABIEncoderV2\";\n\nimport \"../libs/LibZeroExTransaction.sol\";\n\n\ncontract ICoordinatorCore {\n\n /// @dev Executes a 0x transaction that has been signed by the feeRecipients that correspond to each order in the transaction's Exchange calldata.\n /// @param transaction 0x transaction containing salt, signerAddress, and data.\n /// @param txOrigin Required signer of Ethereum transaction calling this function.\n /// @param transactionSignature Proof that the transaction has been signed by the signer.\n /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires.\n /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order in the transaction's Exchange calldata.\n function executeTransaction(\n LibZeroExTransaction.ZeroExTransaction memory transaction,\n address txOrigin,\n bytes memory transactionSignature,\n uint256[] memory approvalExpirationTimeSeconds,\n bytes[] memory approvalSignatures\n )\n public;\n}\n" + }, + "sourceTreeHashHex": "0xcb9dc4e3588f7417807cc8b901a358efbad1d37ae61794e3031c8f00ac09d41e", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "evmVersion": "byzantium", + "remappings": [ + "@0x/contracts-utils=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} \ No newline at end of file diff --git a/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/CoordinatorRegistry.json b/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/CoordinatorRegistry.json new file mode 100644 index 0000000000..837e3b7046 --- /dev/null +++ b/python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts/CoordinatorRegistry.json @@ -0,0 +1,122 @@ +{ + "schemaVersion": "2.0.0", + "contractName": "CoordinatorRegistry", + "compilerOutput": { + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "name": "setCoordinatorEndpoint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "coordinatorOperator", + "type": "address" + } + ], + "name": "getCoordinatorEndpoint", + "outputs": [ + { + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "coordinatorOperator", + "type": "address" + }, + { + "indexed": false, + "name": "coordinatorEndpoint", + "type": "string" + } + ], + "name": "CoordinatorEndpointSet", + "type": "event" + } + ], + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b506104b5806100206000396000f3fe608060405234801561001057600080fd5b5060043610610052577c010000000000000000000000000000000000000000000000000000000060003504635b2388be81146100575780636c90fedb1461006c575b600080fd5b61006a6100653660046102ff565b610095565b005b61007f61007a3660046102d9565b6100f0565b60405161008c91906103d8565b60405180910390f35b3360008181526020819052604090206100af9084846101c4565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e8184846040516100e3939291906103ae565b60405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156101b85780601f1061018d576101008083540402835291602001916101b8565b820191906000526020600020905b81548152906001019060200180831161019b57829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610223578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610250565b82800160010185558215610250579182015b82811115610250578235825591602001919060010190610235565b5061025c929150610260565b5090565b61027a91905b8082111561025c5760008155600101610266565b90565b600061028982356103ed565b9392505050565b600080601f830184136102a257600080fd5b50813567ffffffffffffffff8111156102ba57600080fd5b6020830191508360018202830111156102d257600080fd5b9250929050565b6000602082840312156102eb57600080fd5b60006102f7848461027d565b949350505050565b6000806020838503121561031257600080fd5b823567ffffffffffffffff81111561032957600080fd5b61033585828601610290565b92509250509250929050565b61034a816103ed565b82525050565b6000828452602084019350610366838584610417565b61036f83610453565b9093019392505050565b6000610384826103e9565b808452610398816020860160208601610423565b6103a181610453565b9093016020019392505050565b604081016103bc8286610341565b81810360208301526103cf818486610350565b95945050505050565b602080825281016102898184610379565b5190565b60006103f8826103fe565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561043e578181015183820152602001610426565b8381111561044d576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820d8fc8bc6ec7167e671f9f87937212d93c49d5fbe171bbdfa06c846e5ac76151b6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B5 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x52 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x5B2388BE DUP2 EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x6C90FEDB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A PUSH2 0x65 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FF JUMP JUMPDEST PUSH2 0x95 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAF SWAP1 DUP5 DUP5 PUSH2 0x1C4 JUMP JUMPDEST POP PUSH32 0xD060052768902F3EECB84B8EAE9D3A2608A1A9E60811A33968B46B8D552F266E DUP2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP7 AND ISZERO MUL ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x223 JUMPI DUP3 DUP1 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x250 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x250 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x250 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x235 JUMP JUMPDEST POP PUSH2 0x25C SWAP3 SWAP2 POP PUSH2 0x260 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x27A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x289 DUP3 CALLDATALOAD PUSH2 0x3ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP4 ADD DUP5 SGT PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F7 DUP5 DUP5 PUSH2 0x27D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x34A DUP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x366 DUP4 DUP6 DUP5 PUSH2 0x417 JUMP JUMPDEST PUSH2 0x36F DUP4 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x384 DUP3 PUSH2 0x3E9 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x398 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x423 JUMP JUMPDEST PUSH2 0x3A1 DUP2 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3BC DUP3 DUP7 PUSH2 0x341 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3CF DUP2 DUP5 DUP7 PUSH2 0x350 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x289 DUP2 DUP5 PUSH2 0x379 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8 DUP3 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x43E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xd8 0xfc DUP12 0xc6 0xec PUSH18 0x67E671F9F87937212D93C49D5FBE171BBDFA MOD 0xc8 0x46 0xe5 0xac PUSH23 0x151B6C6578706572696D656E74616CF500370000000000 ", + "sourceMap": "720:148:14:-;;;791:75;8:9:-1;5:2;;;30:1;27;20:12;5:2;791:75:14;720:148;;;;;;" + }, + "deployedBytecode": { + "linkReferences": {}, + "object": "0x608060405234801561001057600080fd5b5060043610610052577c010000000000000000000000000000000000000000000000000000000060003504635b2388be81146100575780636c90fedb1461006c575b600080fd5b61006a6100653660046102ff565b610095565b005b61007f61007a3660046102d9565b6100f0565b60405161008c91906103d8565b60405180910390f35b3360008181526020819052604090206100af9084846101c4565b507fd060052768902f3eecb84b8eae9d3a2608a1a9e60811a33968b46b8d552f266e8184846040516100e3939291906103ae565b60405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081815260409182902080548351601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156101b85780601f1061018d576101008083540402835291602001916101b8565b820191906000526020600020905b81548152906001019060200180831161019b57829003601f168201915b50505050509050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610223578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555610250565b82800160010185558215610250579182015b82811115610250578235825591602001919060010190610235565b5061025c929150610260565b5090565b61027a91905b8082111561025c5760008155600101610266565b90565b600061028982356103ed565b9392505050565b600080601f830184136102a257600080fd5b50813567ffffffffffffffff8111156102ba57600080fd5b6020830191508360018202830111156102d257600080fd5b9250929050565b6000602082840312156102eb57600080fd5b60006102f7848461027d565b949350505050565b6000806020838503121561031257600080fd5b823567ffffffffffffffff81111561032957600080fd5b61033585828601610290565b92509250509250929050565b61034a816103ed565b82525050565b6000828452602084019350610366838584610417565b61036f83610453565b9093019392505050565b6000610384826103e9565b808452610398816020860160208601610423565b6103a181610453565b9093016020019392505050565b604081016103bc8286610341565b81810360208301526103cf818486610350565b95945050505050565b602080825281016102898184610379565b5190565b60006103f8826103fe565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1690565b82818337506000910152565b60005b8381101561043e578181015183820152602001610426565b8381111561044d576000848401525b50505050565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169056fea265627a7a72305820d8fc8bc6ec7167e671f9f87937212d93c49d5fbe171bbdfa06c846e5ac76151b6c6578706572696d656e74616cf50037", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x52 JUMPI PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV PUSH4 0x5B2388BE DUP2 EQ PUSH2 0x57 JUMPI DUP1 PUSH4 0x6C90FEDB EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A PUSH2 0x65 CALLDATASIZE PUSH1 0x4 PUSH2 0x2FF JUMP JUMPDEST PUSH2 0x95 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8C SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xAF SWAP1 DUP5 DUP5 PUSH2 0x1C4 JUMP JUMPDEST POP PUSH32 0xD060052768902F3EECB84B8EAE9D3A2608A1A9E60811A33968B46B8D552F266E DUP2 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD DUP4 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH2 0x100 PUSH1 0x1 DUP7 AND ISZERO MUL ADD SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 DIV SWAP2 DUP3 ADD DUP5 SWAP1 DIV DUP5 MUL DUP2 ADD DUP5 ADD SWAP1 SWAP5 MSTORE DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x18D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x223 JUMPI DUP3 DUP1 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x250 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x250 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x250 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x235 JUMP JUMPDEST POP PUSH2 0x25C SWAP3 SWAP2 POP PUSH2 0x260 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x27A SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x266 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x289 DUP3 CALLDATALOAD PUSH2 0x3ED JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP4 ADD DUP5 SGT PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F7 DUP5 DUP5 PUSH2 0x27D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x312 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x329 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x335 DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x34A DUP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x366 DUP4 DUP6 DUP5 PUSH2 0x417 JUMP JUMPDEST PUSH2 0x36F DUP4 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x384 DUP3 PUSH2 0x3E9 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x398 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x423 JUMP JUMPDEST PUSH2 0x3A1 DUP2 PUSH2 0x453 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3BC DUP3 DUP7 PUSH2 0x341 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3CF DUP2 DUP5 DUP7 PUSH2 0x350 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x289 DUP2 DUP5 PUSH2 0x379 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8 DUP3 PUSH2 0x3FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x43E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x426 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xd8 0xfc DUP12 0xc6 0xec PUSH18 0x67E671F9F87937212D93C49D5FBE171BBDFA MOD 0xc8 0x46 0xe5 0xac PUSH23 0x151B6C6578706572696D656E74616CF500370000000000 ", + "sourceMap": "720:148:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;720:148:14;;;;;;;;;;;;;;;;;;;;;;;;1086:287:15;;;;;;;;;:::i;:::-;;1502:212;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1086:287;1204:10;1174:27;1224:41;;;;;;;;;;:63;;1268:19;;1224:63;:::i;:::-;;1302:64;1325:19;1346;;1302:64;;;;;;;;;;;;;;;;;1086:287;;;:::o;1502:212::-;1666:41;;;:20;:41;;;;;;;;;;;;1659:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:33;;1659:48;;;1666:41;1659:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:212;;;:::o;720:148:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;720:148:14;;;-1:-1:-1;720:148:14;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;57:66;-1:-1;;;57:66;145:336;;;253:4;241:17;;237:27;-1:-1;227:2;;278:1;275;268:12;227:2;-1:-1;298:20;;338:18;327:30;;324:2;;;370:1;367;360:12;324:2;404:4;396:6;392:17;380:29;;454:3;447;439:6;435:16;425:8;421:31;418:40;415:2;;;471:1;468;461:12;415:2;220:261;;;;;;489:241;;593:2;581:9;572:7;568:23;564:32;561:2;;;609:1;606;599:12;561:2;644:1;661:53;706:7;686:9;661:53;;;651:63;555:175;-1:-1;;;;555:175;737:367;;;861:2;849:9;840:7;836:23;832:32;829:2;;;877:1;874;867:12;829:2;912:31;;963:18;952:30;;949:2;;;995:1;992;985:12;949:2;1023:65;1080:7;1071:6;1060:9;1056:22;1023:65;;;1005:83;;;;891:203;823:281;;;;;;1111:120;1194:31;1219:5;1194:31;;;1189:3;1182:44;1176:55;;;1261:273;;1381:6;1376:3;1369:19;1405:4;1400:3;1396:14;1389:21;;1435:43;1471:6;1466:3;1459:5;1435:43;;;1499:29;1521:6;1499:29;;;1490:39;;;;1363:171;-1:-1;;;1363:171;1541:310;;1653:39;1686:5;1653:39;;;1709:6;1704:3;1697:19;1721:63;1777:6;1770:4;1765:3;1761:14;1754:4;1747:5;1743:16;1721:63;;;1816:29;1838:6;1816:29;;;1796:50;;;1809:4;1796:50;;1633:218;-1:-1;;;1633:218;1858:432;2034:2;2019:18;;2048:71;2023:9;2092:6;2048:71;;;2167:9;2161:4;2157:20;2152:2;2141:9;2137:18;2130:48;2192:88;2275:4;2266:6;2258;2192:88;;;2184:96;2005:285;-1:-1;;;;;2005:285;2297:301;2435:2;2449:47;;;2420:18;;2510:78;2420:18;2574:6;2510:78;;2605:92;2680:12;;2664:33;2704:105;;2773:31;2798:5;2773:31;;;2762:42;2756:53;-1:-1;;2756:53;2816:128;2896:42;2885:54;;2868:76;3064:145;3145:6;3140:3;3135;3122:30;-1:-1;3201:1;3183:16;;3176:27;3115:94;3218:268;3283:1;3290:101;3304:6;3301:1;3298:13;3290:101;;;3371:11;;;3365:18;3352:11;;;3345:39;3326:2;3319:10;3290:101;;;3406:6;3403:1;3400:13;3397:2;;;3471:1;3462:6;3457:3;3453:16;3446:27;3397:2;3267:219;;;;;3494:97;3582:2;3562:14;3578:7;3558:28;;3542:49" + } + } + }, + "sources": { + "src/registry/CoordinatorRegistry.sol": { + "id": 14 + }, + "src/registry/MixinCoordinatorRegistryCore.sol": { + "id": 15 + }, + "src/registry/interfaces/ICoordinatorRegistryCore.sol": { + "id": 16 + } + }, + "sourceCodes": { + "src/registry/CoordinatorRegistry.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\nimport \"./MixinCoordinatorRegistryCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract CoordinatorRegistry is\n MixinCoordinatorRegistryCore\n{\n constructor ()\n public\n MixinCoordinatorRegistryCore()\n {}\n}\n", + "src/registry/MixinCoordinatorRegistryCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\nimport \"./interfaces/ICoordinatorRegistryCore.sol\";\n\n\n// solhint-disable no-empty-blocks\ncontract MixinCoordinatorRegistryCore is\n ICoordinatorRegistryCore\n{\n // mapping from `coordinatorOperator` -> `coordinatorEndpoint`\n mapping (address => string) internal coordinatorEndpoints;\n\n /// @dev Called by a Coordinator operator to set the endpoint of their Coordinator.\n /// @param coordinatorEndpoint endpoint of the Coordinator.\n function setCoordinatorEndpoint(string calldata coordinatorEndpoint) external {\n address coordinatorOperator = msg.sender;\n coordinatorEndpoints[coordinatorOperator] = coordinatorEndpoint;\n emit CoordinatorEndpointSet(coordinatorOperator, coordinatorEndpoint);\n }\n\n /// @dev Gets the endpoint for a Coordinator.\n /// @param coordinatorOperator operator of the Coordinator endpoint.\n function getCoordinatorEndpoint(address coordinatorOperator)\n external\n view\n returns (string memory coordinatorEndpoint)\n {\n return coordinatorEndpoints[coordinatorOperator];\n }\n}\n", + "src/registry/interfaces/ICoordinatorRegistryCore.sol": "/*\n\n Copyright 2018 ZeroEx Intl.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n*/\n\npragma solidity 0.5.3;\npragma experimental ABIEncoderV2;\n\n\n// solhint-disable no-empty-blocks\ncontract ICoordinatorRegistryCore\n{\n /// @dev Emitted when a Coordinator endpoint is set.\n event CoordinatorEndpointSet(\n address coordinatorOperator,\n string coordinatorEndpoint\n );\n\n /// @dev Called by a Coordinator operator to set the endpoint of their Coordinator.\n /// @param coordinatorEndpoint endpoint of the Coordinator.\n function setCoordinatorEndpoint(string calldata coordinatorEndpoint) external;\n\n /// @dev Gets the endpoint for a Coordinator.\n /// @param coordinatorOperator operator of the Coordinator endpoint.\n function getCoordinatorEndpoint(address coordinatorOperator)\n external\n view\n returns (string memory coordinatorEndpoint);\n}\n" + }, + "sourceTreeHashHex": "0x73b5157724c2624755d003dcb560ff5732c8ae78d44b1b99ec064e8b909f8f8c", + "compiler": { + "name": "solc", + "version": "0.5.3+commit.10d17f24.Linux.g++", + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode.object", + "evm.bytecode.sourceMap", + "evm.deployedBytecode.object", + "evm.deployedBytecode.sourceMap" + ] + } + }, + "evmVersion": "byzantium", + "remappings": [ + "@0x/contracts-utils=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-utils", + "@0x/contracts-exchange-libs=/Users/fabioberger/Documents/projects/0x_project/0x-monorepo-one/contracts/coordinator/node_modules/@0x/contracts-exchange-libs" + ] + } + }, + "networks": {} +} \ No newline at end of file From 50f5002b71bdc357b3fd3fd0fb55c5d74dccebad Mon Sep 17 00:00:00 2001 From: Steve Klebanoff Date: Thu, 21 Mar 2019 14:43:31 +0100 Subject: [PATCH 76/95] Unmount component when closing --- packages/instant/src/index.umd.ts | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/packages/instant/src/index.umd.ts b/packages/instant/src/index.umd.ts index 30f33acdf8..89a20827c1 100644 --- a/packages/instant/src/index.umd.ts +++ b/packages/instant/src/index.umd.ts @@ -65,21 +65,34 @@ const validateInstantRenderConfig = (config: ZeroExInstantConfig, selector: stri assert.isString('selector', selector); }; +let injectedDiv: HTMLDivElement | undefined; +let parentElement: Element | undefined; +export const unrender = () => { + if (!injectedDiv) { + return; + } + + ReactDOM.unmountComponentAtNode(injectedDiv); + if (parentElement) { + parentElement.removeChild(injectedDiv); + } +}; + // Render instant and return a callback that allows you to remove it from the DOM. const renderInstant = (config: ZeroExInstantConfig, selector: string) => { const appendToIfExists = document.querySelector(selector); assert.assert(!_.isNull(appendToIfExists), `Could not find div with selector: ${selector}`); - const appendTo = appendToIfExists as Element; - const injectedDiv = document.createElement('div'); + parentElement = appendToIfExists as Element; + injectedDiv = document.createElement('div'); injectedDiv.setAttribute('id', INJECTED_DIV_ID); injectedDiv.setAttribute('class', INJECTED_DIV_CLASS); - appendTo.appendChild(injectedDiv); + parentElement.appendChild(injectedDiv); const closeInstant = () => { analytics.trackInstantClosed(); if (!_.isUndefined(config.onClose)) { config.onClose(); } - appendTo.removeChild(injectedDiv); + unrender(); }; const instantOverlayProps = { ...config, From ddee04e98c9ccd39bff2859ebdd72416c6454959 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 21 Mar 2019 14:46:47 +0100 Subject: [PATCH 77/95] Try import instead of const --- packages/typescript-typings/types/ganache-core/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/typescript-typings/types/ganache-core/index.d.ts b/packages/typescript-typings/types/ganache-core/index.d.ts index e3cbcdad5c..ff7d342559 100644 --- a/packages/typescript-typings/types/ganache-core/index.d.ts +++ b/packages/typescript-typings/types/ganache-core/index.d.ts @@ -1,5 +1,5 @@ declare module 'ganache-core' { - const Provider = require('ethereum-types').Provider; + import Provider = require('ethereum-types').Provider; export interface GanacheOpts { verbose?: boolean; logger?: { From 7dcdda14f5278385b71ea0cdd134c0cdcceb2f0c Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 21 Mar 2019 15:13:39 +0100 Subject: [PATCH 78/95] modify types --- packages/typescript-typings/types/ganache-core/index.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/typescript-typings/types/ganache-core/index.d.ts b/packages/typescript-typings/types/ganache-core/index.d.ts index ff7d342559..8eeb05b607 100644 --- a/packages/typescript-typings/types/ganache-core/index.d.ts +++ b/packages/typescript-typings/types/ganache-core/index.d.ts @@ -1,5 +1,5 @@ declare module 'ganache-core' { - import Provider = require('ethereum-types').Provider; + import EthereumTypes = require('ethereum-types'); export interface GanacheOpts { verbose?: boolean; logger?: { @@ -13,5 +13,5 @@ declare module 'ganache-core' { vmErrorsOnRPCResponse?: boolean; db_path?: string; } - export function provider(opts: GanacheOpts): Provider; + export function provider(opts: GanacheOpts): EthereumTypes.Provider; } From 704c52d2291191098fa2543d13e629bf1714b611 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 21 Mar 2019 15:33:47 +0100 Subject: [PATCH 79/95] Move @0x/contracts-test-utils dependency from devDep to deps to fix publish test --- contracts/erc1155/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/erc1155/package.json b/contracts/erc1155/package.json index 9d4077c221..7586b72399 100644 --- a/contracts/erc1155/package.json +++ b/contracts/erc1155/package.json @@ -48,7 +48,6 @@ "devDependencies": { "@0x/abi-gen": "^2.0.7", "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", "@0x/dev-utils": "^2.1.4", "@0x/sol-compiler": "^3.1.4", "@0x/tslint-config": "^3.0.0", @@ -68,6 +67,7 @@ }, "dependencies": { "@0x/base-contract": "^5.0.3", + "@0x/contracts-test-utils": "^3.1.0", "@0x/contracts-utils": "^3.0.0", "@0x/types": "^2.2.0", "@0x/typescript-typings": "^4.2.0", From 5469d3ec13664cada0eec416f24d0a60164d1c8a Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 21 Mar 2019 17:07:04 +0100 Subject: [PATCH 80/95] Updated CHANGELOGS --- contracts/asset-proxy/CHANGELOG.json | 3 +- contracts/asset-proxy/CHANGELOG.md | 4 ++ contracts/coordinator/CHANGELOG.json | 3 +- contracts/coordinator/CHANGELOG.md | 4 ++ contracts/erc1155/CHANGELOG.json | 3 +- contracts/erc1155/CHANGELOG.md | 4 ++ contracts/erc20/CHANGELOG.json | 3 +- contracts/erc20/CHANGELOG.md | 4 ++ contracts/erc721/CHANGELOG.json | 3 +- contracts/erc721/CHANGELOG.md | 4 ++ contracts/exchange-forwarder/CHANGELOG.json | 3 +- contracts/exchange-forwarder/CHANGELOG.md | 4 ++ contracts/exchange-libs/CHANGELOG.json | 3 +- contracts/exchange-libs/CHANGELOG.md | 4 ++ contracts/exchange/CHANGELOG.json | 3 +- contracts/exchange/CHANGELOG.md | 4 ++ contracts/extensions/CHANGELOG.json | 3 +- contracts/extensions/CHANGELOG.md | 4 ++ contracts/multisig/CHANGELOG.json | 3 +- contracts/multisig/CHANGELOG.md | 4 ++ contracts/test-utils/CHANGELOG.json | 9 +++ contracts/test-utils/CHANGELOG.md | 4 ++ contracts/utils/CHANGELOG.json | 3 +- contracts/utils/CHANGELOG.md | 6 ++ packages/0x.js/CHANGELOG.json | 9 +++ packages/0x.js/CHANGELOG.md | 4 ++ packages/abi-gen-wrappers/CHANGELOG.json | 3 +- packages/abi-gen-wrappers/CHANGELOG.md | 4 ++ packages/abi-gen/CHANGELOG.json | 9 +++ packages/abi-gen/CHANGELOG.md | 4 ++ packages/assert/CHANGELOG.json | 9 +++ packages/assert/CHANGELOG.md | 4 ++ packages/asset-buyer/CHANGELOG.json | 9 +++ packages/asset-buyer/CHANGELOG.md | 4 ++ packages/base-contract/CHANGELOG.json | 9 +++ packages/base-contract/CHANGELOG.md | 4 ++ packages/connect/CHANGELOG.json | 9 +++ packages/connect/CHANGELOG.md | 4 ++ packages/contract-addresses/CHANGELOG.json | 2 +- packages/contract-addresses/CHANGELOG.md | 3 +- packages/contract-artifacts/CHANGELOG.json | 3 +- packages/contract-artifacts/CHANGELOG.md | 4 ++ packages/contract-wrappers/CHANGELOG.json | 9 +++ packages/contract-wrappers/CHANGELOG.md | 4 ++ packages/contracts-gen/CHANGELOG.json | 9 +++ packages/contracts-gen/CHANGELOG.md | 4 ++ packages/dev-utils/CHANGELOG.json | 3 +- packages/dev-utils/CHANGELOG.md | 4 ++ packages/fill-scenarios/CHANGELOG.json | 9 +++ packages/fill-scenarios/CHANGELOG.md | 4 ++ packages/json-schemas/CHANGELOG.json | 9 +++ packages/json-schemas/CHANGELOG.md | 4 ++ packages/migrations/CHANGELOG.json | 3 +- packages/migrations/CHANGELOG.md | 5 ++ packages/order-utils/CHANGELOG.json | 9 +++ packages/order-utils/CHANGELOG.md | 6 +- packages/order-watcher/CHANGELOG.json | 9 +++ packages/order-watcher/CHANGELOG.md | 5 ++ packages/react-docs/CHANGELOG.json | 9 +++ packages/react-docs/CHANGELOG.md | 4 ++ packages/react-shared/CHANGELOG.json | 9 +++ packages/react-shared/CHANGELOG.md | 4 ++ packages/sol-compiler/CHANGELOG.json | 9 +++ packages/sol-compiler/CHANGELOG.md | 4 ++ packages/sol-coverage/CHANGELOG.json | 9 +++ packages/sol-coverage/CHANGELOG.md | 4 ++ packages/sol-doc/CHANGELOG.json | 9 +++ packages/sol-doc/CHANGELOG.md | 4 ++ packages/sol-profiler/CHANGELOG.json | 9 +++ packages/sol-profiler/CHANGELOG.md | 4 ++ packages/sol-resolver/CHANGELOG.json | 9 +++ packages/sol-resolver/CHANGELOG.md | 4 ++ packages/sol-trace/CHANGELOG.json | 9 +++ packages/sol-trace/CHANGELOG.md | 4 ++ packages/sol-tracing-utils/CHANGELOG.json | 9 +++ packages/sol-tracing-utils/CHANGELOG.md | 4 ++ packages/sra-spec/CHANGELOG.json | 9 +++ packages/sra-spec/CHANGELOG.md | 4 ++ packages/subproviders/CHANGELOG.json | 9 +++ packages/subproviders/CHANGELOG.md | 4 ++ packages/types/CHANGELOG.json | 9 +++ packages/types/CHANGELOG.md | 5 ++ packages/typescript-typings/CHANGELOG.json | 9 +++ packages/typescript-typings/CHANGELOG.md | 4 ++ packages/utils/CHANGELOG.json | 3 +- packages/utils/CHANGELOG.md | 4 ++ packages/web3-wrapper/CHANGELOG.json | 9 +++ packages/web3-wrapper/CHANGELOG.md | 4 ++ yarn.lock | 76 ++++++++++++++++++++- 89 files changed, 530 insertions(+), 21 deletions(-) diff --git a/contracts/asset-proxy/CHANGELOG.json b/contracts/asset-proxy/CHANGELOG.json index 0116f1a6d4..cd08c26182 100644 --- a/contracts/asset-proxy/CHANGELOG.json +++ b/contracts/asset-proxy/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "version": "2.0.0", diff --git a/contracts/asset-proxy/CHANGELOG.md b/contracts/asset-proxy/CHANGELOG.md index 9b9521d230..add42d96b3 100644 --- a/contracts/asset-proxy/CHANGELOG.md +++ b/contracts/asset-proxy/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.1.0 - _March 21, 2019_ + + * Run Web3ProviderEngine without excess block polling (#1695) + ## v2.0.0 - _March 20, 2019_ * Do not reexport external dependencies (#1682) diff --git a/contracts/coordinator/CHANGELOG.json b/contracts/coordinator/CHANGELOG.json index fbe2e916eb..0ad71372c0 100644 --- a/contracts/coordinator/CHANGELOG.json +++ b/contracts/coordinator/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "version": "1.0.0", diff --git a/contracts/coordinator/CHANGELOG.md b/contracts/coordinator/CHANGELOG.md index 2b55e9bd1b..7abad801a4 100644 --- a/contracts/coordinator/CHANGELOG.md +++ b/contracts/coordinator/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v1.1.0 - _March 21, 2019_ + + * Run Web3ProviderEngine without excess block polling (#1695) + ## v1.0.0 - _March 20, 2019_ * Created Coordinator package diff --git a/contracts/erc1155/CHANGELOG.json b/contracts/erc1155/CHANGELOG.json index 1e6b1f1b08..4a52aa85ff 100644 --- a/contracts/erc1155/CHANGELOG.json +++ b/contracts/erc1155/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "timestamp": 1553091633, diff --git a/contracts/erc1155/CHANGELOG.md b/contracts/erc1155/CHANGELOG.md index fb4659016a..91cafbe214 100644 --- a/contracts/erc1155/CHANGELOG.md +++ b/contracts/erc1155/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v1.1.0 - _March 21, 2019_ + + * Run Web3ProviderEngine without excess block polling (#1695) + ## v1.0.1 - _March 20, 2019_ * Dependencies updated diff --git a/contracts/erc20/CHANGELOG.json b/contracts/erc20/CHANGELOG.json index c00e3660f3..812564a559 100644 --- a/contracts/erc20/CHANGELOG.json +++ b/contracts/erc20/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "version": "2.0.0", diff --git a/contracts/erc20/CHANGELOG.md b/contracts/erc20/CHANGELOG.md index 3b4e1f5c69..203bd1be0f 100644 --- a/contracts/erc20/CHANGELOG.md +++ b/contracts/erc20/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.1.0 - _March 21, 2019_ + + * Run Web3ProviderEngine without excess block polling (#1695) + ## v2.0.0 - _March 20, 2019_ * Upgrade contracts to Solidity 0.5.5 (#1682) diff --git a/contracts/erc721/CHANGELOG.json b/contracts/erc721/CHANGELOG.json index d968f52a47..26547ae1d8 100644 --- a/contracts/erc721/CHANGELOG.json +++ b/contracts/erc721/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "version": "2.0.0", diff --git a/contracts/erc721/CHANGELOG.md b/contracts/erc721/CHANGELOG.md index 2cff0f0f14..912401de5d 100644 --- a/contracts/erc721/CHANGELOG.md +++ b/contracts/erc721/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.1.0 - _March 21, 2019_ + + * Run Web3ProviderEngine without excess block polling (#1695) + ## v2.0.0 - _March 20, 2019_ * Upgrade contracts to Solidity 0.5.5 (#1682) diff --git a/contracts/exchange-forwarder/CHANGELOG.json b/contracts/exchange-forwarder/CHANGELOG.json index 7c90833219..c0486759d4 100644 --- a/contracts/exchange-forwarder/CHANGELOG.json +++ b/contracts/exchange-forwarder/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "version": "2.0.0", diff --git a/contracts/exchange-forwarder/CHANGELOG.md b/contracts/exchange-forwarder/CHANGELOG.md index 83bc43eac7..61dd06d75c 100644 --- a/contracts/exchange-forwarder/CHANGELOG.md +++ b/contracts/exchange-forwarder/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.1.0 - _March 21, 2019_ + + * Run Web3ProviderEngine without excess block polling (#1695) + ## v2.0.0 - _March 20, 2019_ * Do not reexport external dependencies (#1682) diff --git a/contracts/exchange-libs/CHANGELOG.json b/contracts/exchange-libs/CHANGELOG.json index d14239b46b..6fbf4e3c12 100644 --- a/contracts/exchange-libs/CHANGELOG.json +++ b/contracts/exchange-libs/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "version": "2.0.0", diff --git a/contracts/exchange-libs/CHANGELOG.md b/contracts/exchange-libs/CHANGELOG.md index ac861fa478..6e3be33a21 100644 --- a/contracts/exchange-libs/CHANGELOG.md +++ b/contracts/exchange-libs/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.1.0 - _March 21, 2019_ + + * Run Web3ProviderEngine without excess block polling (#1695) + ## v2.0.0 - _March 20, 2019_ * Upgrade contracts to Solidity 0.5.5 (#1682) diff --git a/contracts/exchange/CHANGELOG.json b/contracts/exchange/CHANGELOG.json index 3b5388d6f9..f66cc2e00a 100644 --- a/contracts/exchange/CHANGELOG.json +++ b/contracts/exchange/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "version": "2.0.0", diff --git a/contracts/exchange/CHANGELOG.md b/contracts/exchange/CHANGELOG.md index 14889ee569..70b8e2afe2 100644 --- a/contracts/exchange/CHANGELOG.md +++ b/contracts/exchange/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.1.0 - _March 21, 2019_ + + * Run Web3ProviderEngine without excess block polling (#1695) + ## v2.0.0 - _March 20, 2019_ * Do not reexport external dependencies (#1682) diff --git a/contracts/extensions/CHANGELOG.json b/contracts/extensions/CHANGELOG.json index 695aecd932..aa54e8e0bf 100644 --- a/contracts/extensions/CHANGELOG.json +++ b/contracts/extensions/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "version": "3.0.0", diff --git a/contracts/extensions/CHANGELOG.md b/contracts/extensions/CHANGELOG.md index b3b4ab8e17..a9d71d11e5 100644 --- a/contracts/extensions/CHANGELOG.md +++ b/contracts/extensions/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.1.0 - _March 21, 2019_ + + * Run Web3ProviderEngine without excess block polling (#1695) + ## v3.0.0 - _March 20, 2019_ * Do not reexport external dependencies (#1682) diff --git a/contracts/multisig/CHANGELOG.json b/contracts/multisig/CHANGELOG.json index f4d9fc1a43..e969aa5324 100644 --- a/contracts/multisig/CHANGELOG.json +++ b/contracts/multisig/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Run Web3ProviderEngine without excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "version": "3.0.0", diff --git a/contracts/multisig/CHANGELOG.md b/contracts/multisig/CHANGELOG.md index 6fd0de5bd6..6085cd1e0e 100644 --- a/contracts/multisig/CHANGELOG.md +++ b/contracts/multisig/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.1.0 - _March 21, 2019_ + + * Run Web3ProviderEngine without excess block polling (#1695) + ## v3.0.0 - _March 20, 2019_ * Do not reexport external dependencies (#1682) diff --git a/contracts/test-utils/CHANGELOG.json b/contracts/test-utils/CHANGELOG.json index 0c589a9317..1a649c0a91 100644 --- a/contracts/test-utils/CHANGELOG.json +++ b/contracts/test-utils/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "3.1.1", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "3.1.0", "changes": [ diff --git a/contracts/test-utils/CHANGELOG.md b/contracts/test-utils/CHANGELOG.md index 7f2ac4902e..b4e625254a 100644 --- a/contracts/test-utils/CHANGELOG.md +++ b/contracts/test-utils/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.1.1 - _March 21, 2019_ + + * Dependencies updated + ## v3.1.0 - _March 20, 2019_ * Added ERC1155Proxy test constants and interfaces (#1661) diff --git a/contracts/utils/CHANGELOG.json b/contracts/utils/CHANGELOG.json index 293963bcca..d95a53890b 100644 --- a/contracts/utils/CHANGELOG.json +++ b/contracts/utils/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Added `startProviderEngine` to `providerUtils`. Preventing excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "version": "3.0.0", diff --git a/contracts/utils/CHANGELOG.md b/contracts/utils/CHANGELOG.md index 848f1c6e75..e48dd2c08d 100644 --- a/contracts/utils/CHANGELOG.md +++ b/contracts/utils/CHANGELOG.md @@ -5,11 +5,17 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.1.0 - _March 21, 2019_ + + * Added `startProviderEngine` to `providerUtils`. Preventing excess block polling (#1695) + ## v3.0.0 - _March 20, 2019_ * Optimize loops in LibAddressArray (#1668) * Upgrade contracts to Solidity 0.5.5 (#1682) * Added Address.sol with test for whether or not an address is a contract (#1657) + * Add unit tests for `LibAddressArray` (#1712) + * Fix `LibAddressArray.indexOf` returning incorrect index. (#1712) ## v2.0.8 - _March 1, 2019_ diff --git a/packages/0x.js/CHANGELOG.json b/packages/0x.js/CHANGELOG.json index b52c16fb95..dbd19a48f2 100644 --- a/packages/0x.js/CHANGELOG.json +++ b/packages/0x.js/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "6.0.5", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "6.0.4", diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md index 25e6d74031..f835026ef1 100644 --- a/packages/0x.js/CHANGELOG.md +++ b/packages/0x.js/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v6.0.5 - _March 21, 2019_ + + * Dependencies updated + ## v6.0.4 - _March 20, 2019_ * Dependencies updated diff --git a/packages/abi-gen-wrappers/CHANGELOG.json b/packages/abi-gen-wrappers/CHANGELOG.json index 4fe17d9e75..f85a71cd29 100644 --- a/packages/abi-gen-wrappers/CHANGELOG.json +++ b/packages/abi-gen-wrappers/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Add Coordinator and CoordinatorRegistry contract wrappers", "pr": 1689 } - ] + ], + "timestamp": 1553183790 }, { "timestamp": 1553091633, diff --git a/packages/abi-gen-wrappers/CHANGELOG.md b/packages/abi-gen-wrappers/CHANGELOG.md index 5ddd798e2a..679d6fe678 100644 --- a/packages/abi-gen-wrappers/CHANGELOG.md +++ b/packages/abi-gen-wrappers/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.1.0 - _March 21, 2019_ + + * Add Coordinator and CoordinatorRegistry contract wrappers (#1689) + ## v4.0.3 - _March 20, 2019_ * Dependencies updated diff --git a/packages/abi-gen/CHANGELOG.json b/packages/abi-gen/CHANGELOG.json index a4a036c905..df099913d5 100644 --- a/packages/abi-gen/CHANGELOG.json +++ b/packages/abi-gen/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "2.0.8", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "2.0.7", diff --git a/packages/abi-gen/CHANGELOG.md b/packages/abi-gen/CHANGELOG.md index eceb62a1dd..09d21f2411 100644 --- a/packages/abi-gen/CHANGELOG.md +++ b/packages/abi-gen/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.8 - _March 21, 2019_ + + * Dependencies updated + ## v2.0.7 - _March 20, 2019_ * Dependencies updated diff --git a/packages/assert/CHANGELOG.json b/packages/assert/CHANGELOG.json index c408999e02..84d233ab9f 100644 --- a/packages/assert/CHANGELOG.json +++ b/packages/assert/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "2.0.8", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "2.0.7", diff --git a/packages/assert/CHANGELOG.md b/packages/assert/CHANGELOG.md index beabf7f3bb..1201cb0f65 100644 --- a/packages/assert/CHANGELOG.md +++ b/packages/assert/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.8 - _March 21, 2019_ + + * Dependencies updated + ## v2.0.7 - _March 20, 2019_ * Dependencies updated diff --git a/packages/asset-buyer/CHANGELOG.json b/packages/asset-buyer/CHANGELOG.json index a840f60036..a4800c1d79 100644 --- a/packages/asset-buyer/CHANGELOG.json +++ b/packages/asset-buyer/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "6.0.5", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "6.0.4", diff --git a/packages/asset-buyer/CHANGELOG.md b/packages/asset-buyer/CHANGELOG.md index eb4bee74bf..8fb898609e 100644 --- a/packages/asset-buyer/CHANGELOG.md +++ b/packages/asset-buyer/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v6.0.5 - _March 21, 2019_ + + * Dependencies updated + ## v6.0.4 - _March 20, 2019_ * Dependencies updated diff --git a/packages/base-contract/CHANGELOG.json b/packages/base-contract/CHANGELOG.json index d10e0d9519..cdebb7a06a 100644 --- a/packages/base-contract/CHANGELOG.json +++ b/packages/base-contract/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "5.0.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "5.0.3", diff --git a/packages/base-contract/CHANGELOG.md b/packages/base-contract/CHANGELOG.md index 13ebba498d..37db8b8f0e 100644 --- a/packages/base-contract/CHANGELOG.md +++ b/packages/base-contract/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v5.0.4 - _March 21, 2019_ + + * Dependencies updated + ## v5.0.3 - _March 20, 2019_ * Dependencies updated diff --git a/packages/connect/CHANGELOG.json b/packages/connect/CHANGELOG.json index 92f662103e..694a3dfb16 100644 --- a/packages/connect/CHANGELOG.json +++ b/packages/connect/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "5.0.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "5.0.3", "changes": [ diff --git a/packages/connect/CHANGELOG.md b/packages/connect/CHANGELOG.md index 3f1deba8b6..7d6b718eaa 100644 --- a/packages/connect/CHANGELOG.md +++ b/packages/connect/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v5.0.4 - _March 21, 2019_ + + * Dependencies updated + ## v5.0.3 - _March 20, 2019_ * Update websocket@^1.0.25 -> websocket@^1.0.26 (#1685) diff --git a/packages/contract-addresses/CHANGELOG.json b/packages/contract-addresses/CHANGELOG.json index 2e57afc1e5..f5dc2d5445 100644 --- a/packages/contract-addresses/CHANGELOG.json +++ b/packages/contract-addresses/CHANGELOG.json @@ -11,7 +11,7 @@ "pr": 1715 } ], - "timestamp": 1553091633 + "timestamp": 1553183790 }, { "version": "2.2.2", diff --git a/packages/contract-addresses/CHANGELOG.md b/packages/contract-addresses/CHANGELOG.md index 718c7276ab..3f27fb526a 100644 --- a/packages/contract-addresses/CHANGELOG.md +++ b/packages/contract-addresses/CHANGELOG.md @@ -5,8 +5,9 @@ Edit the package's CHANGELOG.json file only. CHANGELOG -## v2.2.3 - _March 20, 2019_ +## v2.3.0 - _March 21, 2019_ + * Add addresses for coordinator extension contract and coordinator registry (#1689) * Added Dutch Auction mainnet address (#1715) ## v2.2.2 - _February 25, 2019_ diff --git a/packages/contract-artifacts/CHANGELOG.json b/packages/contract-artifacts/CHANGELOG.json index ccf46dc8c1..1fbfe90604 100644 --- a/packages/contract-artifacts/CHANGELOG.json +++ b/packages/contract-artifacts/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Added artifact for `Coordinaotr` and `CoordinatorRegistry` contracts", "pr": 1689 } - ] + ], + "timestamp": 1553183790 }, { "version": "1.3.0", diff --git a/packages/contract-artifacts/CHANGELOG.md b/packages/contract-artifacts/CHANGELOG.md index c1118a3b91..0896220555 100644 --- a/packages/contract-artifacts/CHANGELOG.md +++ b/packages/contract-artifacts/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v1.4.0 - _March 21, 2019_ + + * Added artifact for `Coordinaotr` and `CoordinatorRegistry` contracts (#1689) + ## v1.3.0 - _January 15, 2019_ * Added artifact for `MultiAssetProxy` contract (#1503) diff --git a/packages/contract-wrappers/CHANGELOG.json b/packages/contract-wrappers/CHANGELOG.json index 0c2c414adb..5ab5d9bc58 100644 --- a/packages/contract-wrappers/CHANGELOG.json +++ b/packages/contract-wrappers/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "8.0.5", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "8.0.4", diff --git a/packages/contract-wrappers/CHANGELOG.md b/packages/contract-wrappers/CHANGELOG.md index 32c1e28661..b0f730b42a 100644 --- a/packages/contract-wrappers/CHANGELOG.md +++ b/packages/contract-wrappers/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v8.0.5 - _March 21, 2019_ + + * Dependencies updated + ## v8.0.4 - _March 20, 2019_ * Dependencies updated diff --git a/packages/contracts-gen/CHANGELOG.json b/packages/contracts-gen/CHANGELOG.json index f059d7a3fd..50e8b378aa 100644 --- a/packages/contracts-gen/CHANGELOG.json +++ b/packages/contracts-gen/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "1.0.7", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "1.0.6", diff --git a/packages/contracts-gen/CHANGELOG.md b/packages/contracts-gen/CHANGELOG.md index 59dd19eeb6..3a84e36e34 100644 --- a/packages/contracts-gen/CHANGELOG.md +++ b/packages/contracts-gen/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v1.0.7 - _March 21, 2019_ + + * Dependencies updated + ## v1.0.6 - _March 20, 2019_ * Dependencies updated diff --git a/packages/dev-utils/CHANGELOG.json b/packages/dev-utils/CHANGELOG.json index 3915f7d5d6..e6ec03c134 100644 --- a/packages/dev-utils/CHANGELOG.json +++ b/packages/dev-utils/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Added `startProviderEngine` to `providerUtils`. Preventing excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "timestamp": 1553091633, diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index b0f6318abf..2a0bdf9de2 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.2.0 - _March 21, 2019_ + + * Added `startProviderEngine` to `providerUtils`. Preventing excess block polling (#1695) + ## v2.1.4 - _March 20, 2019_ * Dependencies updated diff --git a/packages/fill-scenarios/CHANGELOG.json b/packages/fill-scenarios/CHANGELOG.json index 979f143653..5359e6d18a 100644 --- a/packages/fill-scenarios/CHANGELOG.json +++ b/packages/fill-scenarios/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "3.0.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "3.0.3", diff --git a/packages/fill-scenarios/CHANGELOG.md b/packages/fill-scenarios/CHANGELOG.md index 17f50658a9..dbf649ca4a 100644 --- a/packages/fill-scenarios/CHANGELOG.md +++ b/packages/fill-scenarios/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.0.4 - _March 21, 2019_ + + * Dependencies updated + ## v3.0.3 - _March 20, 2019_ * Dependencies updated diff --git a/packages/json-schemas/CHANGELOG.json b/packages/json-schemas/CHANGELOG.json index 376e6432be..d98ab42de3 100644 --- a/packages/json-schemas/CHANGELOG.json +++ b/packages/json-schemas/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "3.0.8", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "3.0.7", diff --git a/packages/json-schemas/CHANGELOG.md b/packages/json-schemas/CHANGELOG.md index ac04a0bf04..0feeef64dc 100644 --- a/packages/json-schemas/CHANGELOG.md +++ b/packages/json-schemas/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.0.8 - _March 21, 2019_ + + * Dependencies updated + ## v3.0.7 - _March 20, 2019_ * Dependencies updated diff --git a/packages/migrations/CHANGELOG.json b/packages/migrations/CHANGELOG.json index 5b1a7e6930..e594d8da85 100644 --- a/packages/migrations/CHANGELOG.json +++ b/packages/migrations/CHANGELOG.json @@ -10,7 +10,8 @@ "note": "Added `startProviderEngine` to `providerUtils`. Preventing excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "timestamp": 1553091633, diff --git a/packages/migrations/CHANGELOG.md b/packages/migrations/CHANGELOG.md index 64337fae5d..40b4422657 100644 --- a/packages/migrations/CHANGELOG.md +++ b/packages/migrations/CHANGELOG.md @@ -5,6 +5,11 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.1.0 - _March 21, 2019_ + + * Add deployment of `Coordinator` and `CoordinatorRegistry` contracts to migration script (#1689) + * Added `startProviderEngine` to `providerUtils`. Preventing excess block polling (#1695) + ## v4.0.4 - _March 20, 2019_ * Dependencies updated diff --git a/packages/order-utils/CHANGELOG.json b/packages/order-utils/CHANGELOG.json index 48ddd60dda..d7511d2faa 100644 --- a/packages/order-utils/CHANGELOG.json +++ b/packages/order-utils/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "7.1.1", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "7.1.0", "changes": [ diff --git a/packages/order-utils/CHANGELOG.md b/packages/order-utils/CHANGELOG.md index e999ab3b27..e771b82e33 100644 --- a/packages/order-utils/CHANGELOG.md +++ b/packages/order-utils/CHANGELOG.md @@ -5,10 +5,14 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v7.1.1 - _March 21, 2019_ + + * Dependencies updated + ## v7.1.0 - _March 20, 2019_ * Add Coordinator EIP712 constants (#1705) - * Added encoding/decoding fdor ERC1155 asset data (#1661) + * Added encoding/decoding for ERC1155 asset data (#1661) ## v7.0.2 - _March 1, 2019_ diff --git a/packages/order-watcher/CHANGELOG.json b/packages/order-watcher/CHANGELOG.json index 9d6ae1f060..9b73257c8b 100644 --- a/packages/order-watcher/CHANGELOG.json +++ b/packages/order-watcher/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "4.0.5", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "4.0.4", "changes": [ diff --git a/packages/order-watcher/CHANGELOG.md b/packages/order-watcher/CHANGELOG.md index e479946902..ebbf8189d0 100644 --- a/packages/order-watcher/CHANGELOG.md +++ b/packages/order-watcher/CHANGELOG.md @@ -5,11 +5,16 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.0.5 - _March 21, 2019_ + + * Dependencies updated + ## v4.0.4 - _March 20, 2019_ * Update websocket from ^1.0.25 to ^1.0.26 (#1685) * Fix issue where ERC721 Approval events could cause a lookup on undefined object (#1692) * Fix race-condition bugs due to async event callbacks modifying shared state (#1718) + * Run Web3ProviderEngine without excess block polling (#1695) ## v4.0.3 - _March 1, 2019_ diff --git a/packages/react-docs/CHANGELOG.json b/packages/react-docs/CHANGELOG.json index 606d0a8df9..96622338ec 100644 --- a/packages/react-docs/CHANGELOG.json +++ b/packages/react-docs/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "2.0.9", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "2.0.8", diff --git a/packages/react-docs/CHANGELOG.md b/packages/react-docs/CHANGELOG.md index c4c47971c7..1bde9f1cca 100644 --- a/packages/react-docs/CHANGELOG.md +++ b/packages/react-docs/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.9 - _March 21, 2019_ + + * Dependencies updated + ## v2.0.8 - _March 20, 2019_ * Dependencies updated diff --git a/packages/react-shared/CHANGELOG.json b/packages/react-shared/CHANGELOG.json index 190cbfdbe9..f129fab3b1 100644 --- a/packages/react-shared/CHANGELOG.json +++ b/packages/react-shared/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "2.0.9", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "2.0.8", diff --git a/packages/react-shared/CHANGELOG.md b/packages/react-shared/CHANGELOG.md index 8b94c98d2a..ab883be997 100644 --- a/packages/react-shared/CHANGELOG.md +++ b/packages/react-shared/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.9 - _March 21, 2019_ + + * Dependencies updated + ## v2.0.8 - _March 20, 2019_ * Dependencies updated diff --git a/packages/sol-compiler/CHANGELOG.json b/packages/sol-compiler/CHANGELOG.json index 54ea20a21f..f04f7f254a 100644 --- a/packages/sol-compiler/CHANGELOG.json +++ b/packages/sol-compiler/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "3.1.5", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "3.1.4", diff --git a/packages/sol-compiler/CHANGELOG.md b/packages/sol-compiler/CHANGELOG.md index 8641b5b728..928498cdae 100644 --- a/packages/sol-compiler/CHANGELOG.md +++ b/packages/sol-compiler/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.1.5 - _March 21, 2019_ + + * Dependencies updated + ## v3.1.4 - _March 20, 2019_ * Dependencies updated diff --git a/packages/sol-coverage/CHANGELOG.json b/packages/sol-coverage/CHANGELOG.json index 68307197be..680c6af1b5 100644 --- a/packages/sol-coverage/CHANGELOG.json +++ b/packages/sol-coverage/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "3.0.2", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "3.0.1", diff --git a/packages/sol-coverage/CHANGELOG.md b/packages/sol-coverage/CHANGELOG.md index 332bdba875..7063bb297b 100644 --- a/packages/sol-coverage/CHANGELOG.md +++ b/packages/sol-coverage/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.0.2 - _March 21, 2019_ + + * Dependencies updated + ## v3.0.1 - _March 20, 2019_ * Dependencies updated diff --git a/packages/sol-doc/CHANGELOG.json b/packages/sol-doc/CHANGELOG.json index 9e20d5dbbd..51b985d04e 100644 --- a/packages/sol-doc/CHANGELOG.json +++ b/packages/sol-doc/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "2.0.9", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "2.0.8", diff --git a/packages/sol-doc/CHANGELOG.md b/packages/sol-doc/CHANGELOG.md index c353d8e8c9..bf9b45d804 100644 --- a/packages/sol-doc/CHANGELOG.md +++ b/packages/sol-doc/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.9 - _March 21, 2019_ + + * Dependencies updated + ## v2.0.8 - _March 20, 2019_ * Dependencies updated diff --git a/packages/sol-profiler/CHANGELOG.json b/packages/sol-profiler/CHANGELOG.json index 30b6b1e437..9ddf717579 100644 --- a/packages/sol-profiler/CHANGELOG.json +++ b/packages/sol-profiler/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "3.1.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "3.1.3", diff --git a/packages/sol-profiler/CHANGELOG.md b/packages/sol-profiler/CHANGELOG.md index 9f9e646ab8..20ffb28a69 100644 --- a/packages/sol-profiler/CHANGELOG.md +++ b/packages/sol-profiler/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v3.1.4 - _March 21, 2019_ + + * Dependencies updated + ## v3.1.3 - _March 20, 2019_ * Dependencies updated diff --git a/packages/sol-resolver/CHANGELOG.json b/packages/sol-resolver/CHANGELOG.json index 51a2d37b7e..ffaac2c451 100644 --- a/packages/sol-resolver/CHANGELOG.json +++ b/packages/sol-resolver/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "2.0.6", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "2.0.5", diff --git a/packages/sol-resolver/CHANGELOG.md b/packages/sol-resolver/CHANGELOG.md index 3e6ce82c0d..54534253ff 100644 --- a/packages/sol-resolver/CHANGELOG.md +++ b/packages/sol-resolver/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.6 - _March 21, 2019_ + + * Dependencies updated + ## v2.0.5 - _March 20, 2019_ * Dependencies updated diff --git a/packages/sol-trace/CHANGELOG.json b/packages/sol-trace/CHANGELOG.json index ba27205866..9f381d3d36 100644 --- a/packages/sol-trace/CHANGELOG.json +++ b/packages/sol-trace/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "2.0.10", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "2.0.9", diff --git a/packages/sol-trace/CHANGELOG.md b/packages/sol-trace/CHANGELOG.md index 2c10776823..b7e81c7e66 100644 --- a/packages/sol-trace/CHANGELOG.md +++ b/packages/sol-trace/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.10 - _March 21, 2019_ + + * Dependencies updated + ## v2.0.9 - _March 20, 2019_ * Dependencies updated diff --git a/packages/sol-tracing-utils/CHANGELOG.json b/packages/sol-tracing-utils/CHANGELOG.json index 8506ad7b3a..2cf2b0bed5 100644 --- a/packages/sol-tracing-utils/CHANGELOG.json +++ b/packages/sol-tracing-utils/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "6.0.9", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "6.0.8", "changes": [ diff --git a/packages/sol-tracing-utils/CHANGELOG.md b/packages/sol-tracing-utils/CHANGELOG.md index 546ac8064c..e5823c4bf7 100644 --- a/packages/sol-tracing-utils/CHANGELOG.md +++ b/packages/sol-tracing-utils/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v6.0.9 - _March 21, 2019_ + + * Dependencies updated + ## v6.0.8 - _March 20, 2019_ * Update solidity-parser-antlr to 0.4.2 (#1719) diff --git a/packages/sra-spec/CHANGELOG.json b/packages/sra-spec/CHANGELOG.json index 2dc9fad8b4..e6f49c3bc6 100644 --- a/packages/sra-spec/CHANGELOG.json +++ b/packages/sra-spec/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "2.0.8", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "timestamp": 1553091633, "version": "2.0.7", diff --git a/packages/sra-spec/CHANGELOG.md b/packages/sra-spec/CHANGELOG.md index 3f9c2c94a4..0c4ec80f7d 100644 --- a/packages/sra-spec/CHANGELOG.md +++ b/packages/sra-spec/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.0.8 - _March 21, 2019_ + + * Dependencies updated + ## v2.0.7 - _March 20, 2019_ * Dependencies updated diff --git a/packages/subproviders/CHANGELOG.json b/packages/subproviders/CHANGELOG.json index 914fa07a4d..3d265d164a 100644 --- a/packages/subproviders/CHANGELOG.json +++ b/packages/subproviders/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "4.0.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "4.0.3", "changes": [ diff --git a/packages/subproviders/CHANGELOG.md b/packages/subproviders/CHANGELOG.md index 8b35b013c9..b6087c7498 100644 --- a/packages/subproviders/CHANGELOG.md +++ b/packages/subproviders/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.0.4 - _March 21, 2019_ + + * Dependencies updated + ## v4.0.3 - _March 20, 2019_ * Update ganache-core to 2.5.3 (#1707) diff --git a/packages/types/CHANGELOG.json b/packages/types/CHANGELOG.json index 23f9c07f42..298c0bdcc5 100644 --- a/packages/types/CHANGELOG.json +++ b/packages/types/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "2.2.1", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "2.2.0", "changes": [ diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 05fdd2e990..670684a746 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -5,12 +5,17 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v2.2.1 - _March 21, 2019_ + + * Dependencies updated + ## v2.2.0 - _March 20, 2019_ * Added ERC1155 revert reasons (#1657) * Added `ERC1155AssetData`, `ERC1155AssetDataNoProxyId`, and `ERC1155AssetDataAbi` (#1661) * Add `InvalidOrigin` revert reason (#1668) * Add `RevertReason.SignatureInvalid` thrown by Coordinator (#1705) + * Add `RevertReason.InvalidFreeMemoryPtr` thrown by LibAddressArray (#1712) ## v2.1.1 - _February 26, 2019_ diff --git a/packages/typescript-typings/CHANGELOG.json b/packages/typescript-typings/CHANGELOG.json index 5d28379dc1..657041d2b3 100644 --- a/packages/typescript-typings/CHANGELOG.json +++ b/packages/typescript-typings/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "4.2.1", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "4.2.0", "changes": [ diff --git a/packages/typescript-typings/CHANGELOG.md b/packages/typescript-typings/CHANGELOG.md index fc23c8f99c..3aeeffaad3 100644 --- a/packages/typescript-typings/CHANGELOG.md +++ b/packages/typescript-typings/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.2.1 - _March 21, 2019_ + + * Dependencies updated + ## v4.2.0 - _March 20, 2019_ * Add optional types to optimizer settings (#1682) diff --git a/packages/utils/CHANGELOG.json b/packages/utils/CHANGELOG.json index 1bfd7e6013..003246910e 100644 --- a/packages/utils/CHANGELOG.json +++ b/packages/utils/CHANGELOG.json @@ -6,7 +6,8 @@ "note": "Added `startProviderEngine` to `providerUtils`. Preventing excess block polling", "pr": 1695 } - ] + ], + "timestamp": 1553183790 }, { "timestamp": 1553091633, diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 2572e54724..23d18de605 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v4.3.0 - _March 21, 2019_ + + * Added `startProviderEngine` to `providerUtils`. Preventing excess block polling (#1695) + ## v4.2.3 - _March 20, 2019_ * Dependencies updated diff --git a/packages/web3-wrapper/CHANGELOG.json b/packages/web3-wrapper/CHANGELOG.json index e99107bf86..2e8251b823 100644 --- a/packages/web3-wrapper/CHANGELOG.json +++ b/packages/web3-wrapper/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "timestamp": 1553183790, + "version": "6.0.4", + "changes": [ + { + "note": "Dependencies updated" + } + ] + }, { "version": "6.0.3", "changes": [ diff --git a/packages/web3-wrapper/CHANGELOG.md b/packages/web3-wrapper/CHANGELOG.md index 3d0c53f555..7d673f633f 100644 --- a/packages/web3-wrapper/CHANGELOG.md +++ b/packages/web3-wrapper/CHANGELOG.md @@ -5,6 +5,10 @@ Edit the package's CHANGELOG.json file only. CHANGELOG +## v6.0.4 - _March 21, 2019_ + + * Dependencies updated + ## v6.0.3 - _March 20, 2019_ * Update ganache-core to 2.5.3 (#1707) diff --git a/yarn.lock b/yarn.lock index 84e8cfaf81..1928b64de2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -489,6 +489,22 @@ ethers "~4.0.4" lodash "^4.17.11" +"@0x/contracts-asset-proxy@^1.0.2": + version "1.0.9" + resolved "https://registry.npmjs.org/@0x/contracts-asset-proxy/-/contracts-asset-proxy-1.0.9.tgz#3a48e64b93ddc642834bde1bd09cdd84ca688a2b" + dependencies: + "@0x/base-contract" "^5.0.2" + "@0x/contracts-erc20" "^1.0.9" + "@0x/contracts-erc721" "^1.0.9" + "@0x/contracts-utils" "2.0.1" + "@0x/order-utils" "^7.0.2" + "@0x/types" "^2.1.1" + "@0x/typescript-typings" "^4.1.0" + "@0x/utils" "^4.2.2" + "@0x/web3-wrapper" "^6.0.2" + ethereum-types "^2.1.0" + lodash "^4.17.11" + "@0x/contracts-erc20@1.0.8": version "1.0.8" resolved "https://registry.npmjs.org/@0x/contracts-erc20/-/contracts-erc20-1.0.8.tgz#882f3acf1a44148800d9bef692aa377627df9ace" @@ -503,6 +519,20 @@ ethereum-types "^2.1.0" lodash "^4.17.11" +"@0x/contracts-erc20@^1.0.2", "@0x/contracts-erc20@^1.0.9": + version "1.0.9" + resolved "https://registry.npmjs.org/@0x/contracts-erc20/-/contracts-erc20-1.0.9.tgz#366ce8222dcae5ade0ea7ca95332416a080f6abf" + dependencies: + "@0x/base-contract" "^5.0.2" + "@0x/contracts-exchange-libs" "1.0.2" + "@0x/contracts-utils" "2.0.1" + "@0x/types" "^2.1.1" + "@0x/typescript-typings" "^4.1.0" + "@0x/utils" "^4.2.2" + "@0x/web3-wrapper" "^6.0.2" + ethereum-types "^2.1.0" + lodash "^4.17.11" + "@0x/contracts-erc721@1.0.8": version "1.0.8" resolved "https://registry.npmjs.org/@0x/contracts-erc721/-/contracts-erc721-1.0.8.tgz#d3746c26eec57662654557121601b5bb81085637" @@ -516,6 +546,19 @@ ethereum-types "^2.1.0" lodash "^4.17.11" +"@0x/contracts-erc721@^1.0.2", "@0x/contracts-erc721@^1.0.9": + version "1.0.9" + resolved "https://registry.npmjs.org/@0x/contracts-erc721/-/contracts-erc721-1.0.9.tgz#3991858a3bf5a80dcd6e5fd65e938f8adc3b347c" + dependencies: + "@0x/base-contract" "^5.0.2" + "@0x/contracts-utils" "2.0.1" + "@0x/types" "^2.1.1" + "@0x/typescript-typings" "^4.1.0" + "@0x/utils" "^4.2.2" + "@0x/web3-wrapper" "^6.0.2" + ethereum-types "^2.1.0" + lodash "^4.17.11" + "@0x/contracts-exchange-libs@1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@0x/contracts-exchange-libs/-/contracts-exchange-libs-1.0.2.tgz#0682c01cdb3e36100bda0ffbdf9badb5b8a01fc4" @@ -530,6 +573,20 @@ ethereum-types "^2.0.0" lodash "^4.17.5" +"@0x/contracts-exchange-libs@^1.0.2": + version "1.1.3" + resolved "https://registry.npmjs.org/@0x/contracts-exchange-libs/-/contracts-exchange-libs-1.1.3.tgz#dc9429e9c5fc750e9f5006e5ad53ebd7aa577c28" + dependencies: + "@0x/base-contract" "^5.0.2" + "@0x/contracts-utils" "^2.0.8" + "@0x/order-utils" "^7.0.2" + "@0x/types" "^2.1.1" + "@0x/typescript-typings" "^4.1.0" + "@0x/utils" "^4.2.2" + "@0x/web3-wrapper" "^6.0.2" + ethereum-types "^2.1.0" + lodash "^4.17.11" + "@0x/contracts-exchange@1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@0x/contracts-exchange/-/contracts-exchange-1.0.2.tgz#4c02378b26a7bf6324e16a41f2851c43fed82c63" @@ -565,6 +622,21 @@ ethereumjs-util "^5.1.1" lodash "^4.17.5" +"@0x/contracts-utils@^2.0.1", "@0x/contracts-utils@^2.0.8": + version "2.0.8" + resolved "https://registry.npmjs.org/@0x/contracts-utils/-/contracts-utils-2.0.8.tgz#b6a3775296e04c7ca9ebea7eae56fda48a43239d" + dependencies: + "@0x/base-contract" "^5.0.2" + "@0x/order-utils" "^7.0.2" + "@0x/types" "^2.1.1" + "@0x/typescript-typings" "^4.1.0" + "@0x/utils" "^4.2.2" + "@0x/web3-wrapper" "^6.0.2" + bn.js "^4.11.8" + ethereum-types "^2.1.0" + ethereumjs-util "^5.1.1" + lodash "^4.17.11" + "@0x/order-utils@^5.0.0": version "5.0.0" resolved "https://registry.yarnpkg.com/@0x/order-utils/-/order-utils-5.0.0.tgz#7f43e0310ace31738895881501c8dda9c3a3aefa" @@ -13605,8 +13677,8 @@ react-highlight@0xproject/react-highlight#react-peer-deps: dependencies: highlight.js "^9.11.0" highlightjs-solidity "^1.0.5" - react "^16.5.2" - react-dom "^16.5.2" + react "^16.4.2" + react-dom "^16.4.2" react-hot-loader@^4.3.3: version "4.3.4" From 0f45409b4d481b72280db4eb872c0c72beeea504 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 21 Mar 2019 17:07:20 +0100 Subject: [PATCH 81/95] Publish - 0x.js@6.0.5 - @0x/abi-gen@2.0.8 - @0x/abi-gen-wrappers@4.1.0 - @0x/assert@2.0.8 - @0x/asset-buyer@6.0.5 - @0x/base-contract@5.0.4 - @0x/connect@5.0.4 - @0x/contract-addresses@2.3.0 - @0x/contract-artifacts@1.4.0 - @0x/contract-wrappers@8.0.5 - @0x/contracts-gen@1.0.7 - @0x/dev-tools-pages@0.0.24 - @0x/dev-utils@2.2.0 - @0x/fill-scenarios@3.0.4 - @0x/instant@1.0.19 - @0x/json-schemas@3.0.8 - @0x/metacoin@0.0.46 - @0x/migrations@4.1.0 - @0x/monorepo-scripts@1.0.29 - @0x/order-utils@7.1.1 - @0x/order-watcher@4.0.5 - @0x/pipeline@1.0.16 - @0x/react-docs@2.0.9 - @0x/react-shared@2.0.9 - @0x/sol-compiler@3.1.5 - @0x/sol-coverage@3.0.2 - @0x/sol-doc@2.0.9 - @0x/sol-profiler@3.1.4 - @0x/sol-resolver@2.0.6 - @0x/sol-trace@2.0.10 - @0x/sol-tracing-utils@6.0.9 - @0x/sra-spec@2.0.8 - @0x/subproviders@4.0.4 - @0x/testnet-faucets@1.0.75 - @0x/types@2.2.1 - @0x/typescript-typings@4.2.1 - @0x/utils@4.3.0 - @0x/web3-wrapper@6.0.4 - @0x/website@0.0.78 - @0x/contracts-asset-proxy@2.1.0 - @0x/contracts-coordinator@1.1.0 - @0x/contracts-erc1155@1.1.0 - @0x/contracts-erc20@2.1.0 - @0x/contracts-erc721@2.1.0 - @0x/contracts-exchange@2.1.0 - @0x/contracts-exchange-forwarder@2.1.0 - @0x/contracts-exchange-libs@2.1.0 - @0x/contracts-extensions@3.1.0 - @0x/contracts-multisig@3.1.0 - @0x/contracts-test-utils@3.1.1 - @0x/contracts-utils@3.1.0 --- contracts/asset-proxy/package.json | 32 +++++++++---------- contracts/coordinator/package.json | 32 +++++++++---------- contracts/erc1155/package.json | 24 +++++++------- contracts/erc20/package.json | 26 ++++++++-------- contracts/erc721/package.json | 24 +++++++------- contracts/exchange-forwarder/package.json | 28 ++++++++--------- contracts/exchange-libs/package.json | 26 ++++++++-------- contracts/exchange/package.json | 36 ++++++++++----------- contracts/extensions/package.json | 38 +++++++++++------------ contracts/multisig/package.json | 26 ++++++++-------- contracts/test-utils/package.json | 26 ++++++++-------- contracts/utils/package.json | 24 +++++++------- packages/0x.js/package.json | 30 +++++++++--------- packages/abi-gen-wrappers/package.json | 12 +++---- packages/abi-gen/package.json | 6 ++-- packages/assert/package.json | 8 ++--- packages/asset-buyer/package.json | 22 ++++++------- packages/base-contract/package.json | 8 ++--- packages/connect/package.json | 14 ++++----- packages/contract-addresses/package.json | 2 +- packages/contract-artifacts/package.json | 2 +- packages/contract-wrappers/package.json | 32 +++++++++---------- packages/contracts-gen/package.json | 10 +++--- packages/dev-tools-pages/package.json | 4 +-- packages/dev-utils/package.json | 12 +++---- packages/fill-scenarios/package.json | 18 +++++------ packages/instant/package.json | 20 ++++++------ packages/json-schemas/package.json | 6 ++-- packages/metacoin/package.json | 28 ++++++++--------- packages/migrations/package.json | 26 ++++++++-------- packages/monorepo-scripts/package.json | 6 ++-- packages/order-utils/package.json | 24 +++++++------- packages/order-watcher/package.json | 34 ++++++++++---------- packages/pipeline/package.json | 22 ++++++------- packages/react-docs/package.json | 10 +++--- packages/react-shared/package.json | 6 ++-- packages/sol-compiler/package.json | 18 +++++------ packages/sol-coverage/package.json | 8 ++--- packages/sol-doc/package.json | 8 ++--- packages/sol-profiler/package.json | 10 +++--- packages/sol-resolver/package.json | 6 ++-- packages/sol-trace/package.json | 8 ++--- packages/sol-tracing-utils/package.json | 16 +++++----- packages/sra-spec/package.json | 4 +-- packages/subproviders/package.json | 12 +++---- packages/testnet-faucets/package.json | 12 +++---- packages/types/package.json | 2 +- packages/typescript-typings/package.json | 2 +- packages/utils/package.json | 6 ++-- packages/web3-wrapper/package.json | 10 +++--- packages/website/package.json | 26 ++++++++-------- 51 files changed, 426 insertions(+), 426 deletions(-) diff --git a/contracts/asset-proxy/package.json b/contracts/asset-proxy/package.json index 22929783a6..5d187ca41f 100644 --- a/contracts/asset-proxy/package.json +++ b/contracts/asset-proxy/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-asset-proxy", - "version": "2.0.0", + "version": "2.1.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/protocol/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contracts-gen": "^1.0.7", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,16 +67,16 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/contracts-erc1155": "^1.0.1", - "@0x/contracts-erc20": "^2.0.0", - "@0x/contracts-erc721": "^2.0.0", - "@0x/contracts-utils": "^3.0.0", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/base-contract": "^5.0.4", + "@0x/contracts-erc1155": "^1.1.0", + "@0x/contracts-erc20": "^2.1.0", + "@0x/contracts-erc721": "^2.1.0", + "@0x/contracts-utils": "^3.1.0", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, diff --git a/contracts/coordinator/package.json b/contracts/coordinator/package.json index d307412802..8df2e578b4 100644 --- a/contracts/coordinator/package.json +++ b/contracts/coordinator/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-coordinator", - "version": "1.0.0", + "version": "1.1.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/extensions/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contracts-gen": "^1.0.7", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,17 +67,17 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/contracts-asset-proxy": "^2.0.0", - "@0x/contracts-erc20": "^2.0.0", + "@0x/base-contract": "^5.0.4", + "@0x/contracts-asset-proxy": "^2.1.0", + "@0x/contracts-erc20": "^2.1.0", "@0x/contracts-exchange": "1.0.2", - "@0x/contracts-exchange-libs": "^2.0.0", - "@0x/contracts-utils": "^3.0.0", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/contracts-exchange-libs": "^2.1.0", + "@0x/contracts-utils": "^3.1.0", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11" diff --git a/contracts/erc1155/package.json b/contracts/erc1155/package.json index 7586b72399..b5e0ba99d8 100644 --- a/contracts/erc1155/package.json +++ b/contracts/erc1155/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-erc1155", - "version": "1.0.1", + "version": "1.1.0", "engines": { "node": ">=6.12" }, @@ -46,10 +46,10 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contracts-gen": "^1.0.6", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contracts-gen": "^1.0.7", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -66,13 +66,13 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/contracts-utils": "^3.0.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/base-contract": "^5.0.4", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/contracts-utils": "^3.1.0", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, diff --git a/contracts/erc20/package.json b/contracts/erc20/package.json index ecd7632179..d742904029 100644 --- a/contracts/erc20/package.json +++ b/contracts/erc20/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-erc20", - "version": "2.0.0", + "version": "2.1.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contracts-gen": "^1.0.7", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,13 +67,13 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/contracts-exchange-libs": "^2.0.0", - "@0x/contracts-utils": "^3.0.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/base-contract": "^5.0.4", + "@0x/contracts-exchange-libs": "^2.1.0", + "@0x/contracts-utils": "^3.1.0", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, diff --git a/contracts/erc721/package.json b/contracts/erc721/package.json index 3920a0f758..1353374fca 100644 --- a/contracts/erc721/package.json +++ b/contracts/erc721/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-erc721", - "version": "2.0.0", + "version": "2.1.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contracts-gen": "^1.0.7", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,12 +67,12 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/contracts-utils": "^3.0.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/base-contract": "^5.0.4", + "@0x/contracts-utils": "^3.1.0", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, diff --git a/contracts/exchange-forwarder/package.json b/contracts/exchange-forwarder/package.json index c3a357329c..905da9f2b5 100644 --- a/contracts/exchange-forwarder/package.json +++ b/contracts/exchange-forwarder/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-exchange-forwarder", - "version": "2.0.0", + "version": "2.1.0", "engines": { "node": ">=6.12" }, @@ -46,12 +46,12 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/extensions/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contract-wrappers": "^8.0.4", - "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contract-wrappers": "^8.0.5", + "@0x/contracts-gen": "^1.0.7", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -68,18 +68,18 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/contracts-asset-proxy": "^2.0.0", + "@0x/base-contract": "^5.0.4", + "@0x/contracts-asset-proxy": "^2.1.0", "@0x/contracts-erc20": "1.0.8", "@0x/contracts-erc721": "1.0.8", "@0x/contracts-exchange": "1.0.2", "@0x/contracts-exchange-libs": "1.0.2", "@0x/contracts-utils": "2.0.1", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, diff --git a/contracts/exchange-libs/package.json b/contracts/exchange-libs/package.json index 787caf82e9..79e4eb7233 100644 --- a/contracts/exchange-libs/package.json +++ b/contracts/exchange-libs/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-exchange-libs", - "version": "2.0.0", + "version": "2.1.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/libs/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contracts-gen": "^1.0.7", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,13 +67,13 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/contracts-utils": "^3.0.0", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/base-contract": "^5.0.4", + "@0x/contracts-utils": "^3.1.0", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, diff --git a/contracts/exchange/package.json b/contracts/exchange/package.json index 895bf33ed2..6f4f51bae6 100644 --- a/contracts/exchange/package.json +++ b/contracts/exchange/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-exchange", - "version": "2.0.0", + "version": "2.1.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/protocol/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contracts-gen": "^1.0.7", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,18 +67,18 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/contracts-asset-proxy": "^2.0.0", - "@0x/contracts-erc1155": "^1.0.1", - "@0x/contracts-erc20": "^2.0.0", - "@0x/contracts-erc721": "^2.0.0", - "@0x/contracts-exchange-libs": "^2.0.0", - "@0x/contracts-utils": "^3.0.0", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/base-contract": "^5.0.4", + "@0x/contracts-asset-proxy": "^2.1.0", + "@0x/contracts-erc1155": "^1.1.0", + "@0x/contracts-erc20": "^2.1.0", + "@0x/contracts-erc721": "^2.1.0", + "@0x/contracts-exchange-libs": "^2.1.0", + "@0x/contracts-utils": "^3.1.0", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11" diff --git a/contracts/extensions/package.json b/contracts/extensions/package.json index 8a028e176a..c5e17f2d16 100644 --- a/contracts/extensions/package.json +++ b/contracts/extensions/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-extensions", - "version": "3.0.0", + "version": "3.1.0", "engines": { "node": ">=6.12" }, @@ -46,12 +46,12 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/extensions/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contract-wrappers": "^8.0.4", - "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contract-wrappers": "^8.0.5", + "@0x/contracts-gen": "^1.0.7", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -68,18 +68,18 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/contracts-asset-proxy": "^2.0.0", - "@0x/contracts-erc20": "^2.0.0", - "@0x/contracts-erc721": "^2.0.0", - "@0x/contracts-exchange": "^2.0.0", - "@0x/contracts-exchange-libs": "^2.0.0", - "@0x/contracts-utils": "^3.0.0", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/base-contract": "^5.0.4", + "@0x/contracts-asset-proxy": "^2.1.0", + "@0x/contracts-erc20": "^2.1.0", + "@0x/contracts-erc721": "^2.1.0", + "@0x/contracts-exchange": "^2.1.0", + "@0x/contracts-exchange-libs": "^2.1.0", + "@0x/contracts-utils": "^3.1.0", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, diff --git a/contracts/multisig/package.json b/contracts/multisig/package.json index 0aa611eb1e..d53942ca15 100644 --- a/contracts/multisig/package.json +++ b/contracts/multisig/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-multisig", - "version": "3.0.0", + "version": "3.1.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/multisig/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contracts-gen": "^1.0.7", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/node": "*", @@ -67,14 +67,14 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/contracts-asset-proxy": "^2.0.0", - "@0x/contracts-erc20": "^2.0.0", + "@0x/base-contract": "^5.0.4", + "@0x/contracts-asset-proxy": "^2.1.0", + "@0x/contracts-erc20": "^2.1.0", "@0x/contracts-utils": "2.0.1", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, diff --git a/contracts/test-utils/package.json b/contracts/test-utils/package.json index aa8c1f4140..c79e2f20ee 100644 --- a/contracts/test-utils/package.json +++ b/contracts/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-test-utils", - "version": "3.1.0", + "version": "3.1.1", "engines": { "node": ">=6.12" }, @@ -40,19 +40,19 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/dev-utils": "^2.1.4", - "@0x/order-utils": "^7.1.0", - "@0x/sol-compiler": "^3.1.4", - "@0x/sol-coverage": "^3.0.1", - "@0x/sol-profiler": "^3.1.3", - "@0x/sol-trace": "^2.0.9", - "@0x/subproviders": "^4.0.3", + "@0x/abi-gen": "^2.0.8", + "@0x/dev-utils": "^2.2.0", + "@0x/order-utils": "^7.1.1", + "@0x/sol-compiler": "^3.1.5", + "@0x/sol-coverage": "^3.0.2", + "@0x/sol-profiler": "^3.1.4", + "@0x/sol-trace": "^2.0.10", + "@0x/subproviders": "^4.0.4", "@0x/tslint-config": "^3.0.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@types/bn.js": "^4.11.0", "@types/js-combinatorics": "^0.5.29", "@types/lodash": "4.14.104", diff --git a/contracts/utils/package.json b/contracts/utils/package.json index d309b11ada..152738c841 100644 --- a/contracts/utils/package.json +++ b/contracts/utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-utils", - "version": "3.0.0", + "version": "3.1.0", "engines": { "node": ">=6.12" }, @@ -46,11 +46,11 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/utils/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", - "@0x/contracts-gen": "^1.0.6", - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/abi-gen": "^2.0.8", + "@0x/contracts-gen": "^1.0.7", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "@0x/tslint-config": "^3.0.0", "@types/bn.js": "^4.11.0", "@types/lodash": "4.14.104", @@ -68,12 +68,12 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/base-contract": "^5.0.3", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/base-contract": "^5.0.4", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "bn.js": "^4.11.8", "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json index 3320feb371..d447a918c9 100644 --- a/packages/0x.js/package.json +++ b/packages/0x.js/package.json @@ -1,6 +1,6 @@ { "name": "0x.js", - "version": "6.0.4", + "version": "6.0.5", "engines": { "node": ">=6.12" }, @@ -42,10 +42,10 @@ }, "license": "Apache-2.0", "devDependencies": { - "@0x/abi-gen-wrappers": "^4.0.3", - "@0x/contract-addresses": "^2.2.3", - "@0x/dev-utils": "^2.1.4", - "@0x/migrations": "^4.0.4", + "@0x/abi-gen-wrappers": "^4.1.0", + "@0x/contract-addresses": "^2.3.0", + "@0x/dev-utils": "^2.2.0", + "@0x/migrations": "^4.1.0", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/mocha": "^2.2.42", @@ -72,16 +72,16 @@ "webpack": "^4.20.2" }, "dependencies": { - "@0x/assert": "^2.0.7", - "@0x/base-contract": "^5.0.3", - "@0x/contract-wrappers": "^8.0.4", - "@0x/order-utils": "^7.1.0", - "@0x/order-watcher": "^4.0.4", - "@0x/subproviders": "^4.0.3", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/assert": "^2.0.8", + "@0x/base-contract": "^5.0.4", + "@0x/contract-wrappers": "^8.0.5", + "@0x/order-utils": "^7.1.1", + "@0x/order-watcher": "^4.0.5", + "@0x/subproviders": "^4.0.4", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@types/web3-provider-engine": "^14.0.0", "ethereum-types": "^2.1.1", "ethers": "~4.0.4", diff --git a/packages/abi-gen-wrappers/package.json b/packages/abi-gen-wrappers/package.json index 4f4235d617..527540a1d5 100644 --- a/packages/abi-gen-wrappers/package.json +++ b/packages/abi-gen-wrappers/package.json @@ -1,6 +1,6 @@ { "name": "@0x/abi-gen-wrappers", - "version": "4.0.3", + "version": "4.1.0", "engines": { "node": ">=6.12" }, @@ -30,19 +30,19 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen-wrappers/README.md", "devDependencies": { - "@0x/abi-gen": "^2.0.7", + "@0x/abi-gen": "^2.0.8", "@0x/abi-gen-templates": "^2.0.1", "@0x/tslint-config": "^3.0.0", - "@0x/types": "^2.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/types": "^2.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11", "shx": "^0.2.2" }, "dependencies": { - "@0x/base-contract": "^5.0.3" + "@0x/base-contract": "^5.0.4" }, "publishConfig": { "access": "public" diff --git a/packages/abi-gen/package.json b/packages/abi-gen/package.json index 0060b1b8ed..85a6203e63 100644 --- a/packages/abi-gen/package.json +++ b/packages/abi-gen/package.json @@ -1,6 +1,6 @@ { "name": "@0x/abi-gen", - "version": "2.0.7", + "version": "2.0.8", "engines": { "node": ">=6.12" }, @@ -31,8 +31,8 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen/README.md", "dependencies": { - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", "chalk": "^2.3.0", "ethereum-types": "^2.1.1", "glob": "^7.1.2", diff --git a/packages/assert/package.json b/packages/assert/package.json index 6a226bb76c..c78c409c57 100644 --- a/packages/assert/package.json +++ b/packages/assert/package.json @@ -1,6 +1,6 @@ { "name": "@0x/assert", - "version": "2.0.7", + "version": "2.0.8", "engines": { "node": ">=6.12" }, @@ -44,9 +44,9 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/json-schemas": "^3.0.7", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", + "@0x/json-schemas": "^3.0.8", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", "lodash": "^4.17.11", "valid-url": "^1.0.9" }, diff --git a/packages/asset-buyer/package.json b/packages/asset-buyer/package.json index 65922ae62e..6b26434eff 100644 --- a/packages/asset-buyer/package.json +++ b/packages/asset-buyer/package.json @@ -1,6 +1,6 @@ { "name": "@0x/asset-buyer", - "version": "6.0.4", + "version": "6.0.5", "engines": { "node": ">=6.12" }, @@ -36,16 +36,16 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/asset-buyer/README.md", "dependencies": { - "@0x/assert": "^2.0.7", - "@0x/connect": "^5.0.3", - "@0x/contract-wrappers": "^8.0.4", - "@0x/json-schemas": "^3.0.7", - "@0x/order-utils": "^7.1.0", - "@0x/subproviders": "^4.0.3", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/assert": "^2.0.8", + "@0x/connect": "^5.0.4", + "@0x/contract-wrappers": "^8.0.5", + "@0x/json-schemas": "^3.0.8", + "@0x/order-utils": "^7.1.1", + "@0x/subproviders": "^4.0.4", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "lodash": "^4.17.11" }, diff --git a/packages/base-contract/package.json b/packages/base-contract/package.json index 39558184f3..9d54c8faec 100644 --- a/packages/base-contract/package.json +++ b/packages/base-contract/package.json @@ -1,6 +1,6 @@ { "name": "@0x/base-contract", - "version": "5.0.3", + "version": "5.0.4", "engines": { "node": ">=6.12" }, @@ -40,9 +40,9 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11" diff --git a/packages/connect/package.json b/packages/connect/package.json index e0a3027611..5c170209a7 100644 --- a/packages/connect/package.json +++ b/packages/connect/package.json @@ -1,6 +1,6 @@ { "name": "@0x/connect", - "version": "5.0.3", + "version": "5.0.4", "engines": { "node": ">=6.12" }, @@ -44,12 +44,12 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/connect/README.md", "dependencies": { - "@0x/assert": "^2.0.7", - "@0x/json-schemas": "^3.0.7", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", + "@0x/assert": "^2.0.8", + "@0x/json-schemas": "^3.0.8", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", "lodash": "^4.17.11", "query-string": "^6.0.0", "sinon": "^4.0.0", diff --git a/packages/contract-addresses/package.json b/packages/contract-addresses/package.json index 76c791cb5f..1c0932580f 100644 --- a/packages/contract-addresses/package.json +++ b/packages/contract-addresses/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contract-addresses", - "version": "2.2.3", + "version": "2.3.0", "engines": { "node": ">=6.12" }, diff --git a/packages/contract-artifacts/package.json b/packages/contract-artifacts/package.json index 6a98615d76..e2ed257b23 100644 --- a/packages/contract-artifacts/package.json +++ b/packages/contract-artifacts/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contract-artifacts", - "version": "1.3.0", + "version": "1.4.0", "engines": { "node": ">=6.12" }, diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json index b1d409c9a7..88ceb51658 100644 --- a/packages/contract-wrappers/package.json +++ b/packages/contract-wrappers/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contract-wrappers", - "version": "8.0.4", + "version": "8.0.5", "description": "Smart TS wrappers for 0x smart contracts", "keywords": [ "0xproject", @@ -37,11 +37,11 @@ "node": ">=6.0.0" }, "devDependencies": { - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/fill-scenarios": "^3.0.3", - "@0x/migrations": "^4.0.4", - "@0x/subproviders": "^4.0.3", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/fill-scenarios": "^3.0.4", + "@0x/migrations": "^4.1.0", + "@0x/subproviders": "^4.0.4", "@0x/tslint-config": "^3.0.0", "@types/lodash": "4.14.104", "@types/mocha": "^2.2.42", @@ -67,16 +67,16 @@ "web3-provider-engine": "14.0.6" }, "dependencies": { - "@0x/abi-gen-wrappers": "^4.0.3", - "@0x/assert": "^2.0.7", - "@0x/contract-addresses": "^2.2.3", - "@0x/contract-artifacts": "^1.3.0", - "@0x/json-schemas": "^3.0.7", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/abi-gen-wrappers": "^4.1.0", + "@0x/assert": "^2.0.8", + "@0x/contract-addresses": "^2.3.0", + "@0x/contract-artifacts": "^1.4.0", + "@0x/json-schemas": "^3.0.8", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "ethereumjs-abi": "0.6.5", "ethereumjs-blockstream": "6.0.0", diff --git a/packages/contracts-gen/package.json b/packages/contracts-gen/package.json index b7161b2e6c..090ed71e0a 100644 --- a/packages/contracts-gen/package.json +++ b/packages/contracts-gen/package.json @@ -1,6 +1,6 @@ { "name": "@0x/contracts-gen", - "version": "1.0.6", + "version": "1.0.7", "engines": { "node": ">=6.12" }, @@ -26,10 +26,10 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/contracts-gen/README.md", "dependencies": { - "@0x/sol-resolver": "^2.0.5", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", + "@0x/sol-resolver": "^2.0.6", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", "ethereum-types": "^2.1.1", "lodash": "^4.17.11", "prettier": "^1.16.3", diff --git a/packages/dev-tools-pages/package.json b/packages/dev-tools-pages/package.json index 2186b0ac69..b735af6806 100644 --- a/packages/dev-tools-pages/package.json +++ b/packages/dev-tools-pages/package.json @@ -1,6 +1,6 @@ { "name": "@0x/dev-tools-pages", - "version": "0.0.23", + "version": "0.0.24", "engines": { "node": ">=6.12" }, @@ -26,7 +26,7 @@ }, "license": "Apache-2.0", "dependencies": { - "@0x/react-shared": "^2.0.8", + "@0x/react-shared": "^2.0.9", "basscss": "^8.0.3", "bowser": "^1.9.4", "highlight.js": "^9.13.1", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 0571b5b082..b61ab4b58c 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/dev-utils", - "version": "2.1.4", + "version": "2.2.0", "engines": { "node": ">=6.12" }, @@ -41,11 +41,11 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/subproviders": "^4.0.3", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/subproviders": "^4.0.4", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@types/web3-provider-engine": "^14.0.0", "chai": "^4.0.1", "ethereum-types": "^2.1.1", diff --git a/packages/fill-scenarios/package.json b/packages/fill-scenarios/package.json index 4babe60e9b..4f4dc0d082 100644 --- a/packages/fill-scenarios/package.json +++ b/packages/fill-scenarios/package.json @@ -1,6 +1,6 @@ { "name": "@0x/fill-scenarios", - "version": "3.0.3", + "version": "3.0.4", "description": "0x order fill scenario generator", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -28,14 +28,14 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/abi-gen-wrappers": "^4.0.3", - "@0x/base-contract": "^5.0.3", - "@0x/contract-artifacts": "^1.3.0", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/abi-gen-wrappers": "^4.1.0", + "@0x/base-contract": "^5.0.4", + "@0x/contract-artifacts": "^1.4.0", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "ethereum-types": "^2.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11" diff --git a/packages/instant/package.json b/packages/instant/package.json index a085e993f4..983e761a1c 100644 --- a/packages/instant/package.json +++ b/packages/instant/package.json @@ -1,6 +1,6 @@ { "name": "@0x/instant", - "version": "1.0.18", + "version": "1.0.19", "engines": { "node": ">=6.12" }, @@ -42,15 +42,15 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/instant/README.md", "dependencies": { - "@0x/assert": "^2.0.7", - "@0x/asset-buyer": "^6.0.4", - "@0x/json-schemas": "^3.0.7", - "@0x/order-utils": "^7.1.0", - "@0x/subproviders": "^4.0.3", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/assert": "^2.0.8", + "@0x/asset-buyer": "^6.0.5", + "@0x/json-schemas": "^3.0.8", + "@0x/order-utils": "^7.1.1", + "@0x/subproviders": "^4.0.4", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "babel-runtime": "^6.26.0", "bowser": "^1.9.4", "copy-to-clipboard": "^3.0.8", diff --git a/packages/json-schemas/package.json b/packages/json-schemas/package.json index bc272cb990..8b62ef1749 100644 --- a/packages/json-schemas/package.json +++ b/packages/json-schemas/package.json @@ -1,6 +1,6 @@ { "name": "@0x/json-schemas", - "version": "3.0.7", + "version": "3.0.8", "engines": { "node": ">=6.12" }, @@ -39,14 +39,14 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/json-schemas/README.md", "dependencies": { - "@0x/typescript-typings": "^4.2.0", + "@0x/typescript-typings": "^4.2.1", "@types/node": "*", "jsonschema": "^1.2.0", "lodash.values": "^4.3.0" }, "devDependencies": { "@0x/tslint-config": "^3.0.0", - "@0x/utils": "^4.2.3", + "@0x/utils": "^4.3.0", "@types/lodash.foreach": "^4.5.3", "@types/lodash.values": "^4.3.3", "@types/mocha": "^2.2.42", diff --git a/packages/metacoin/package.json b/packages/metacoin/package.json index 6ef95345c8..c6c1a25f7b 100644 --- a/packages/metacoin/package.json +++ b/packages/metacoin/package.json @@ -1,6 +1,6 @@ { "name": "@0x/metacoin", - "version": "0.0.45", + "version": "0.0.46", "engines": { "node": ">=6.12" }, @@ -30,18 +30,18 @@ "author": "", "license": "Apache-2.0", "dependencies": { - "@0x/abi-gen": "^2.0.7", + "@0x/abi-gen": "^2.0.8", "@0x/abi-gen-templates": "^2.0.1", - "@0x/base-contract": "^5.0.3", - "@0x/sol-coverage": "^3.0.1", - "@0x/sol-profiler": "^3.1.3", - "@0x/sol-trace": "^2.0.9", - "@0x/subproviders": "^4.0.3", + "@0x/base-contract": "^5.0.4", + "@0x/sol-coverage": "^3.0.2", + "@0x/sol-profiler": "^3.1.4", + "@0x/sol-trace": "^2.0.10", + "@0x/subproviders": "^4.0.4", "@0x/tslint-config": "^3.0.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@types/mocha": "^2.2.42", "copyfiles": "^2.0.0", "ethereum-types": "^2.1.1", @@ -50,9 +50,9 @@ "run-s": "^0.0.0" }, "devDependencies": { - "@0x/contracts-test-utils": "^3.1.0", - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", + "@0x/contracts-test-utils": "^3.1.1", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", "chai": "^4.0.1", "chai-as-promised": "^7.1.0", "chai-bignumber": "^3.0.0", diff --git a/packages/migrations/package.json b/packages/migrations/package.json index 77ff9a9d72..6494c51536 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -1,6 +1,6 @@ { "name": "@0x/migrations", - "version": "4.0.4", + "version": "4.1.0", "engines": { "node": ">=6.12" }, @@ -35,9 +35,9 @@ }, "license": "Apache-2.0", "devDependencies": { - "@0x/dev-utils": "^2.1.4", + "@0x/dev-utils": "^2.2.0", "@0x/tslint-config": "^3.0.0", - "@0x/types": "^2.2.0", + "@0x/types": "^2.2.1", "@types/yargs": "^11.0.0", "make-promises-safe": "^1.1.0", "npm-run-all": "^4.1.2", @@ -49,16 +49,16 @@ "yargs": "^10.0.3" }, "dependencies": { - "@0x/abi-gen-wrappers": "^4.0.3", - "@0x/base-contract": "^5.0.3", - "@0x/contract-addresses": "^2.2.3", - "@0x/contract-artifacts": "^1.3.0", - "@0x/order-utils": "^7.1.0", - "@0x/sol-compiler": "^3.1.4", - "@0x/subproviders": "^4.0.3", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/abi-gen-wrappers": "^4.1.0", + "@0x/base-contract": "^5.0.4", + "@0x/contract-addresses": "^2.3.0", + "@0x/contract-artifacts": "^1.4.0", + "@0x/order-utils": "^7.1.1", + "@0x/sol-compiler": "^3.1.5", + "@0x/subproviders": "^4.0.4", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@ledgerhq/hw-app-eth": "^4.3.0", "@types/web3-provider-engine": "^14.0.0", "ethereum-types": "^2.1.1", diff --git a/packages/monorepo-scripts/package.json b/packages/monorepo-scripts/package.json index ccb2882384..f1d2c7f56e 100644 --- a/packages/monorepo-scripts/package.json +++ b/packages/monorepo-scripts/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@0x/monorepo-scripts", - "version": "1.0.28", + "version": "1.0.29", "engines": { "node": ">=6.12" }, @@ -47,8 +47,8 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/types": "^2.2.0", - "@0x/utils": "^4.2.3", + "@0x/types": "^2.2.1", + "@0x/utils": "^4.3.0", "@lerna/batch-packages": "^3.0.0-beta.18", "@types/depcheck": "^0.6.0", "async-child-process": "^1.1.1", diff --git a/packages/order-utils/package.json b/packages/order-utils/package.json index c6b1231e95..5452ea7a3a 100644 --- a/packages/order-utils/package.json +++ b/packages/order-utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/order-utils", - "version": "7.1.0", + "version": "7.1.1", "engines": { "node": ">=6.12" }, @@ -35,7 +35,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/order-utils/README.md", "devDependencies": { - "@0x/dev-utils": "^2.1.4", + "@0x/dev-utils": "^2.2.0", "@0x/tslint-config": "^3.0.0", "@types/bn.js": "^4.11.0", "@types/lodash": "4.14.104", @@ -55,16 +55,16 @@ "web3-provider-engine": "14.0.6" }, "dependencies": { - "@0x/abi-gen-wrappers": "^4.0.3", - "@0x/assert": "^2.0.7", - "@0x/base-contract": "^5.0.3", - "@0x/contract-addresses": "^2.2.3", - "@0x/contract-artifacts": "^1.3.0", - "@0x/json-schemas": "^3.0.7", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/abi-gen-wrappers": "^4.1.0", + "@0x/assert": "^2.0.8", + "@0x/base-contract": "^5.0.4", + "@0x/contract-addresses": "^2.3.0", + "@0x/contract-artifacts": "^1.4.0", + "@0x/json-schemas": "^3.0.8", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@types/node": "*", "bn.js": "^4.11.8", "ethereum-types": "^2.1.1", diff --git a/packages/order-watcher/package.json b/packages/order-watcher/package.json index a94b4a04e7..4443ad1f3c 100644 --- a/packages/order-watcher/package.json +++ b/packages/order-watcher/package.json @@ -1,6 +1,6 @@ { "name": "@0x/order-watcher", - "version": "4.0.4", + "version": "4.0.5", "description": "An order watcher daemon that watches for order validity", "keywords": [ "0x", @@ -38,9 +38,9 @@ "node": ">=6.0.0" }, "devDependencies": { - "@0x/dev-utils": "^2.1.4", - "@0x/migrations": "^4.0.4", - "@0x/subproviders": "^4.0.3", + "@0x/dev-utils": "^2.2.0", + "@0x/migrations": "^4.1.0", + "@0x/subproviders": "^4.0.4", "@0x/tslint-config": "^3.0.0", "@types/bintrees": "^1.0.2", "@types/lodash": "4.14.104", @@ -63,19 +63,19 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/abi-gen-wrappers": "^4.0.3", - "@0x/assert": "^2.0.7", - "@0x/base-contract": "^5.0.3", - "@0x/contract-addresses": "^2.2.3", - "@0x/contract-artifacts": "^1.3.0", - "@0x/contract-wrappers": "^8.0.4", - "@0x/fill-scenarios": "^3.0.3", - "@0x/json-schemas": "^3.0.7", - "@0x/order-utils": "^7.1.0", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/abi-gen-wrappers": "^4.1.0", + "@0x/assert": "^2.0.8", + "@0x/base-contract": "^5.0.4", + "@0x/contract-addresses": "^2.3.0", + "@0x/contract-artifacts": "^1.4.0", + "@0x/contract-wrappers": "^8.0.5", + "@0x/fill-scenarios": "^3.0.4", + "@0x/json-schemas": "^3.0.8", + "@0x/order-utils": "^7.1.1", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "bintrees": "^1.0.2", "ethereum-types": "^2.1.1", "ethereumjs-blockstream": "6.0.0", diff --git a/packages/pipeline/package.json b/packages/pipeline/package.json index b7b0ca501e..23af57fd9f 100644 --- a/packages/pipeline/package.json +++ b/packages/pipeline/package.json @@ -1,6 +1,6 @@ { "name": "@0x/pipeline", - "version": "1.0.15", + "version": "1.0.16", "private": true, "description": "Data pipeline for offline analysis", "scripts": { @@ -39,16 +39,16 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/connect": "^5.0.3", - "@0x/contract-addresses": "^2.2.3", - "@0x/contract-artifacts": "^1.3.0", - "@0x/contract-wrappers": "^8.0.4", - "@0x/dev-utils": "^2.1.4", - "@0x/order-utils": "^7.1.0", - "@0x/subproviders": "^4.0.3", - "@0x/types": "^2.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/connect": "^5.0.4", + "@0x/contract-addresses": "^2.3.0", + "@0x/contract-artifacts": "^1.4.0", + "@0x/contract-wrappers": "^8.0.5", + "@0x/dev-utils": "^2.2.0", + "@0x/order-utils": "^7.1.1", + "@0x/subproviders": "^4.0.4", + "@0x/types": "^2.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@radarrelay/types": "^1.2.1", "@types/dockerode": "^2.5.9", "@types/p-limit": "^2.0.0", diff --git a/packages/react-docs/package.json b/packages/react-docs/package.json index 415456fa6e..b2f748326f 100644 --- a/packages/react-docs/package.json +++ b/packages/react-docs/package.json @@ -1,6 +1,6 @@ { "name": "@0x/react-docs", - "version": "2.0.8", + "version": "2.0.9", "engines": { "node": ">=6.12" }, @@ -24,7 +24,7 @@ "url": "https://github.com/0xProject/0x-monorepo.git" }, "devDependencies": { - "@0x/dev-utils": "^2.1.4", + "@0x/dev-utils": "^2.2.0", "@0x/tslint-config": "^3.0.0", "@types/compare-versions": "^3.0.0", "@types/styled-components": "4.0.0", @@ -34,9 +34,9 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/react-shared": "^2.0.8", - "@0x/types": "^2.2.0", - "@0x/utils": "^4.2.3", + "@0x/react-shared": "^2.0.9", + "@0x/types": "^2.2.1", + "@0x/utils": "^4.3.0", "@types/lodash": "4.14.104", "@types/material-ui": "^0.20.0", "@types/node": "*", diff --git a/packages/react-shared/package.json b/packages/react-shared/package.json index 44f19ed050..b0c510ab5a 100644 --- a/packages/react-shared/package.json +++ b/packages/react-shared/package.json @@ -1,6 +1,6 @@ { "name": "@0x/react-shared", - "version": "2.0.8", + "version": "2.0.9", "engines": { "node": ">=6.12" }, @@ -25,7 +25,7 @@ "url": "https://github.com/0xProject/0x-monorepo.git" }, "devDependencies": { - "@0x/dev-utils": "^2.1.4", + "@0x/dev-utils": "^2.2.0", "@0x/tslint-config": "^3.0.0", "make-promises-safe": "^1.1.0", "shx": "^0.2.2", @@ -33,7 +33,7 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/types": "^2.2.0", + "@0x/types": "^2.2.1", "@material-ui/core": "^3.0.1", "@types/is-mobile": "0.3.0", "@types/lodash": "4.14.104", diff --git a/packages/sol-compiler/package.json b/packages/sol-compiler/package.json index 13dadc3a72..0a49c25e55 100644 --- a/packages/sol-compiler/package.json +++ b/packages/sol-compiler/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-compiler", - "version": "3.1.4", + "version": "3.1.5", "engines": { "node": ">=6.12" }, @@ -42,7 +42,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-compiler/README.md", "devDependencies": { - "@0x/dev-utils": "^2.1.4", + "@0x/dev-utils": "^2.2.0", "@0x/tslint-config": "^3.0.0", "@types/chokidar": "^1.7.5", "@types/mkdirp": "^0.5.2", @@ -69,13 +69,13 @@ "zeppelin-solidity": "1.8.0" }, "dependencies": { - "@0x/assert": "^2.0.7", - "@0x/json-schemas": "^3.0.7", - "@0x/sol-resolver": "^2.0.5", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/assert": "^2.0.8", + "@0x/json-schemas": "^3.0.8", + "@0x/sol-resolver": "^2.0.6", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@types/yargs": "^11.0.0", "chalk": "^2.3.0", "chokidar": "^2.0.4", diff --git a/packages/sol-coverage/package.json b/packages/sol-coverage/package.json index d5e302b90f..17b979dd8e 100644 --- a/packages/sol-coverage/package.json +++ b/packages/sol-coverage/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-coverage", - "version": "3.0.1", + "version": "3.0.2", "engines": { "node": ">=6.12" }, @@ -29,9 +29,9 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-coverage/README.md", "dependencies": { - "@0x/sol-tracing-utils": "^6.0.8", - "@0x/subproviders": "^4.0.3", - "@0x/typescript-typings": "^4.2.0", + "@0x/sol-tracing-utils": "^6.0.9", + "@0x/subproviders": "^4.0.4", + "@0x/typescript-typings": "^4.2.1", "@types/minimatch": "^3.0.3", "ethereum-types": "^2.1.1", "lodash": "^4.17.11", diff --git a/packages/sol-doc/package.json b/packages/sol-doc/package.json index 9dad6fbcb1..607c1e3972 100644 --- a/packages/sol-doc/package.json +++ b/packages/sol-doc/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-doc", - "version": "2.0.8", + "version": "2.0.9", "description": "Solidity documentation generator", "main": "lib/src/index.js", "types": "lib/src/index.d.js", @@ -25,9 +25,9 @@ "author": "F. Eugene Aumson", "license": "Apache-2.0", "dependencies": { - "@0x/sol-compiler": "^3.1.4", - "@0x/types": "^2.2.0", - "@0x/utils": "^4.2.3", + "@0x/sol-compiler": "^3.1.5", + "@0x/types": "^2.2.1", + "@0x/utils": "^4.3.0", "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11", diff --git a/packages/sol-profiler/package.json b/packages/sol-profiler/package.json index a124929db3..556d42cacb 100644 --- a/packages/sol-profiler/package.json +++ b/packages/sol-profiler/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-profiler", - "version": "3.1.3", + "version": "3.1.4", "engines": { "node": ">=6.12" }, @@ -29,10 +29,10 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-profiler/README.md", "dependencies": { - "@0x/sol-tracing-utils": "^6.0.8", - "@0x/subproviders": "^4.0.3", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", + "@0x/sol-tracing-utils": "^6.0.9", + "@0x/subproviders": "^4.0.4", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "lodash": "^4.17.11", diff --git a/packages/sol-resolver/package.json b/packages/sol-resolver/package.json index 4b80a5fc4b..2b0cad70fd 100644 --- a/packages/sol-resolver/package.json +++ b/packages/sol-resolver/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-resolver", - "version": "2.0.5", + "version": "2.0.6", "engines": { "node": ">=6.12" }, @@ -30,8 +30,8 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", "lodash": "^4.17.11" }, "publishConfig": { diff --git a/packages/sol-trace/package.json b/packages/sol-trace/package.json index ea3795e310..b5b2e104ea 100644 --- a/packages/sol-trace/package.json +++ b/packages/sol-trace/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-trace", - "version": "2.0.9", + "version": "2.0.10", "engines": { "node": ">=6.12" }, @@ -29,9 +29,9 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-trace/README.md", "dependencies": { - "@0x/sol-tracing-utils": "^6.0.8", - "@0x/subproviders": "^4.0.3", - "@0x/typescript-typings": "^4.2.0", + "@0x/sol-tracing-utils": "^6.0.9", + "@0x/subproviders": "^4.0.4", + "@0x/typescript-typings": "^4.2.1", "chalk": "^2.3.0", "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", diff --git a/packages/sol-tracing-utils/package.json b/packages/sol-tracing-utils/package.json index 83455e5226..87f25d8f7e 100644 --- a/packages/sol-tracing-utils/package.json +++ b/packages/sol-tracing-utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sol-tracing-utils", - "version": "6.0.8", + "version": "6.0.9", "engines": { "node": ">=6.12" }, @@ -42,13 +42,13 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sol-tracing-utils/README.md", "dependencies": { - "@0x/dev-utils": "^2.1.4", - "@0x/sol-compiler": "^3.1.4", - "@0x/sol-resolver": "^2.0.5", - "@0x/subproviders": "^4.0.3", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/dev-utils": "^2.2.0", + "@0x/sol-compiler": "^3.1.5", + "@0x/sol-resolver": "^2.0.6", + "@0x/subproviders": "^4.0.4", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@types/solidity-parser-antlr": "^0.2.3", "chalk": "^2.3.0", "ethereum-types": "^2.1.1", diff --git a/packages/sra-spec/package.json b/packages/sra-spec/package.json index 7516fd1bca..afd5f3373c 100644 --- a/packages/sra-spec/package.json +++ b/packages/sra-spec/package.json @@ -1,6 +1,6 @@ { "name": "@0x/sra-spec", - "version": "2.0.7", + "version": "2.0.8", "engines": { "node": ">=6.12" }, @@ -35,7 +35,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/sra-spec/README.md", "dependencies": { - "@0x/json-schemas": "^3.0.7", + "@0x/json-schemas": "^3.0.8", "@loopback/openapi-v3-types": "^0.8.2" }, "devDependencies": { diff --git a/packages/subproviders/package.json b/packages/subproviders/package.json index b58163c732..acc19a975a 100644 --- a/packages/subproviders/package.json +++ b/packages/subproviders/package.json @@ -1,6 +1,6 @@ { "name": "@0x/subproviders", - "version": "4.0.3", + "version": "4.0.4", "engines": { "node": ">=6.12" }, @@ -29,11 +29,11 @@ } }, "dependencies": { - "@0x/assert": "^2.0.7", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/assert": "^2.0.8", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@ledgerhq/hw-app-eth": "^4.3.0", "@ledgerhq/hw-transport-u2f": "4.24.0", "@types/eth-lightwallet": "^3.0.0", diff --git a/packages/testnet-faucets/package.json b/packages/testnet-faucets/package.json index 9e30c38014..c31ec834ea 100644 --- a/packages/testnet-faucets/package.json +++ b/packages/testnet-faucets/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@0x/testnet-faucets", - "version": "1.0.74", + "version": "1.0.75", "engines": { "node": ">=6.12" }, @@ -18,11 +18,11 @@ "author": "Fabio Berger", "license": "Apache-2.0", "dependencies": { - "0x.js": "^6.0.4", - "@0x/subproviders": "^4.0.3", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "0x.js": "^6.0.5", + "@0x/subproviders": "^4.0.4", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "body-parser": "^1.17.1", "ethereum-types": "^2.1.1", "ethereumjs-tx": "^1.3.5", diff --git a/packages/types/package.json b/packages/types/package.json index cc7af4df24..8542ac208c 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@0x/types", - "version": "2.2.0", + "version": "2.2.1", "engines": { "node": ">=6.12" }, diff --git a/packages/typescript-typings/package.json b/packages/typescript-typings/package.json index d7c50191d7..bd8cee1cd0 100644 --- a/packages/typescript-typings/package.json +++ b/packages/typescript-typings/package.json @@ -1,6 +1,6 @@ { "name": "@0x/typescript-typings", - "version": "4.2.0", + "version": "4.2.1", "engines": { "node": ">=6.12" }, diff --git a/packages/utils/package.json b/packages/utils/package.json index 4585009a54..6540a50e8f 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@0x/utils", - "version": "4.2.3", + "version": "4.3.0", "engines": { "node": ">=6.12" }, @@ -44,8 +44,8 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", "@types/node": "*", "abortcontroller-polyfill": "^1.1.9", "bignumber.js": "~8.0.2", diff --git a/packages/web3-wrapper/package.json b/packages/web3-wrapper/package.json index e72480f8fe..c6c79a30ae 100644 --- a/packages/web3-wrapper/package.json +++ b/packages/web3-wrapper/package.json @@ -1,6 +1,6 @@ { "name": "@0x/web3-wrapper", - "version": "6.0.3", + "version": "6.0.4", "engines": { "node": ">=6.12" }, @@ -53,10 +53,10 @@ "typescript": "3.0.1" }, "dependencies": { - "@0x/assert": "^2.0.7", - "@0x/json-schemas": "^3.0.7", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", + "@0x/assert": "^2.0.8", + "@0x/json-schemas": "^3.0.8", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", "ethereum-types": "^2.1.1", "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", diff --git a/packages/website/package.json b/packages/website/package.json index cadb0c267f..4cb38416dc 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -1,6 +1,6 @@ { "name": "@0x/website", - "version": "0.0.77", + "version": "0.0.78", "engines": { "node": ">=6.12" }, @@ -20,18 +20,18 @@ "author": "Fabio Berger", "license": "Apache-2.0", "dependencies": { - "@0x/asset-buyer": "^6.0.4", - "@0x/contract-addresses": "^2.2.3", - "@0x/contract-wrappers": "^8.0.4", - "@0x/json-schemas": "^3.0.7", - "@0x/order-utils": "^7.1.0", - "@0x/react-docs": "^2.0.8", - "@0x/react-shared": "^2.0.8", - "@0x/subproviders": "^4.0.3", - "@0x/types": "^2.2.0", - "@0x/typescript-typings": "^4.2.0", - "@0x/utils": "^4.2.3", - "@0x/web3-wrapper": "^6.0.3", + "@0x/asset-buyer": "^6.0.5", + "@0x/contract-addresses": "^2.3.0", + "@0x/contract-wrappers": "^8.0.5", + "@0x/json-schemas": "^3.0.8", + "@0x/order-utils": "^7.1.1", + "@0x/react-docs": "^2.0.9", + "@0x/react-shared": "^2.0.9", + "@0x/subproviders": "^4.0.4", + "@0x/types": "^2.2.1", + "@0x/typescript-typings": "^4.2.1", + "@0x/utils": "^4.3.0", + "@0x/web3-wrapper": "^6.0.4", "@reach/dialog": "^0.1.2", "@types/react-lazyload": "^2.3.1", "@types/react-loadable": "^5.4.2", From 08e49dcf2ec0af6a55e6c84b04d285969cc4d501 Mon Sep 17 00:00:00 2001 From: askeluv Date: Fri, 22 Mar 2019 18:15:49 +0800 Subject: [PATCH 82/95] Throttling to respect rate limits --- .../pipeline/src/data_sources/github/index.ts | 30 ++++++++++++------- packages/pipeline/src/scripts/pull_github.ts | 9 +++++- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/packages/pipeline/src/data_sources/github/index.ts b/packages/pipeline/src/data_sources/github/index.ts index 374db087ff..6749676587 100644 --- a/packages/pipeline/src/data_sources/github/index.ts +++ b/packages/pipeline/src/data_sources/github/index.ts @@ -1,4 +1,7 @@ import { fetchAsync, logUtils } from '@0x/utils'; +import Bottleneck from 'bottleneck'; + +const ONE_SECOND = 1000; export interface GithubRepoResponse { full_name: string; @@ -68,17 +71,22 @@ export interface GithubIssueResponse { // tslint:disable:prefer-function-over-method // ^ Keep consistency with other sources and help logical organization export class GithubSource { - public readonly _urlBase: string = 'https://api.github.com'; - public readonly _owner: string; - public readonly _repo: string; - public readonly _branch: string; - public readonly _accessToken: string; + // rate-limit for all API calls through this class instance + private readonly _limiter: Bottleneck; + private readonly _urlBase: string = 'https://api.github.com'; + private readonly _owner: string; + private readonly _repo: string; + private readonly _branch: string; + private readonly _accessToken: string; - constructor(owner: string, repo: string, branch: string, accessToken: string) { + constructor(owner: string, repo: string, branch: string, accessToken: string, maxReqsPerSecond: number) { this._owner = owner; this._repo = repo; this._branch = branch; this._accessToken = accessToken; + this._limiter = new Bottleneck({ + minTime: ONE_SECOND / maxReqsPerSecond, + }); } /** @@ -86,7 +94,7 @@ export class GithubSource { */ public async getGithubRepoAsync(): Promise { const url = `${this._urlBase}/repos/${this._owner}/${this._repo}?access_token=${this._accessToken}`; - const resp = await fetchAsync(url); + const resp = await this._limiter.schedule(() => fetchAsync(url)); const respJson: GithubRepoResponse = await resp.json(); return respJson; } @@ -98,7 +106,7 @@ export class GithubSource { const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/pulls?access_token=${ this._accessToken }&state=all&per_page=100&page=${page}`; - const resp = await fetchAsync(url); + const resp = await this._limiter.schedule(() => fetchAsync(url)); const respJson: GithubPullRequestResponse[] = await resp.json(); return respJson; } @@ -110,7 +118,7 @@ export class GithubSource { const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/forks?access_token=${ this._accessToken }&per_page=100&page=${page}`; - const resp = await fetchAsync(url); + const resp = await this._limiter.schedule(() => fetchAsync(url)); const respJson: GithubForkResponse[] = await resp.json(); return respJson; } @@ -122,7 +130,7 @@ export class GithubSource { const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/compare/${ this._branch }...${forkOwner}:${forkBranch}?access_token=${this._accessToken}`; - const resp = await fetchAsync(url); + const resp = await this._limiter.schedule(() => fetchAsync(url)); const respJson: GithubComparisonResponse = await resp.json(); return respJson; } @@ -134,7 +142,7 @@ export class GithubSource { const url = `${this._urlBase}/repos/${this._owner}/${this._repo}/issues?access_token=${ this._accessToken }&state=all&per_page=100&page=${page}`; - const resp = await fetchAsync(url); + const resp = await this._limiter.schedule(() => fetchAsync(url)); const respJson: GithubIssueResponse[] = await resp.json(); if (!respJson[0]) { logUtils.log(respJson); diff --git a/packages/pipeline/src/scripts/pull_github.ts b/packages/pipeline/src/scripts/pull_github.ts index 7788829870..4fa420b655 100644 --- a/packages/pipeline/src/scripts/pull_github.ts +++ b/packages/pipeline/src/scripts/pull_github.ts @@ -18,6 +18,7 @@ const GITHUB_OWNER = '0xProject'; const GITHUB_REPO = '0x-monorepo'; const GITHUB_BRANCH = 'development'; const RECORDS_PER_PAGE = 100; +const MAX_REQUESTS_PER_SECOND = 1; let connection: Connection; @@ -27,7 +28,13 @@ let connection: Connection; if (accessToken === undefined) { throw new Error('Missing required env var: GITHUB_ACCESS_TOKEN'); } - const githubSource = new GithubSource(GITHUB_OWNER, GITHUB_REPO, GITHUB_BRANCH, accessToken); + const githubSource = new GithubSource( + GITHUB_OWNER, + GITHUB_REPO, + GITHUB_BRANCH, + accessToken, + MAX_REQUESTS_PER_SECOND, + ); const observedTimestamp = Date.now(); // get repo and save From 6b8e40fdc92cc7cf3a58e323a52572bda098f1c7 Mon Sep 17 00:00:00 2001 From: fragosti Date: Fri, 22 Mar 2019 15:02:12 -0700 Subject: [PATCH 83/95] Make unrender idempotent --- packages/instant/src/index.umd.ts | 2 +- yarn.lock | 79 ++++++++++++++++++++++++++++++- 2 files changed, 78 insertions(+), 3 deletions(-) diff --git a/packages/instant/src/index.umd.ts b/packages/instant/src/index.umd.ts index 89a20827c1..099544a085 100644 --- a/packages/instant/src/index.umd.ts +++ b/packages/instant/src/index.umd.ts @@ -73,7 +73,7 @@ export const unrender = () => { } ReactDOM.unmountComponentAtNode(injectedDiv); - if (parentElement) { + if (parentElement && parentElement.contains(injectedDiv)) { parentElement.removeChild(injectedDiv); } }; diff --git a/yarn.lock b/yarn.lock index 84e8cfaf81..3b3cb836f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -489,6 +489,23 @@ ethers "~4.0.4" lodash "^4.17.11" +"@0x/contracts-asset-proxy@^1.0.2": + version "1.0.9" + resolved "https://registry.npmjs.org/@0x/contracts-asset-proxy/-/contracts-asset-proxy-1.0.9.tgz#3a48e64b93ddc642834bde1bd09cdd84ca688a2b" + integrity sha512-AnKE0eDejl3G4xRzwOa2S2usiAoRvyV3lU/sOhwkG53KC6RHQGu9g50zcLHMHmTl9I088eEa423QwbeBxgmtcQ== + dependencies: + "@0x/base-contract" "^5.0.2" + "@0x/contracts-erc20" "^1.0.9" + "@0x/contracts-erc721" "^1.0.9" + "@0x/contracts-utils" "2.0.1" + "@0x/order-utils" "^7.0.2" + "@0x/types" "^2.1.1" + "@0x/typescript-typings" "^4.1.0" + "@0x/utils" "^4.2.2" + "@0x/web3-wrapper" "^6.0.2" + ethereum-types "^2.1.0" + lodash "^4.17.11" + "@0x/contracts-erc20@1.0.8": version "1.0.8" resolved "https://registry.npmjs.org/@0x/contracts-erc20/-/contracts-erc20-1.0.8.tgz#882f3acf1a44148800d9bef692aa377627df9ace" @@ -503,6 +520,21 @@ ethereum-types "^2.1.0" lodash "^4.17.11" +"@0x/contracts-erc20@^1.0.2", "@0x/contracts-erc20@^1.0.9": + version "1.0.9" + resolved "https://registry.npmjs.org/@0x/contracts-erc20/-/contracts-erc20-1.0.9.tgz#366ce8222dcae5ade0ea7ca95332416a080f6abf" + integrity sha512-CJwEWrGf0tvpnraEW+TPTjpMcwj9yDem1xVbER0qV49RRZupasVIcQmaZi4ZUpZqo4X67ZOx8uijgLXFDB9NDw== + dependencies: + "@0x/base-contract" "^5.0.2" + "@0x/contracts-exchange-libs" "1.0.2" + "@0x/contracts-utils" "2.0.1" + "@0x/types" "^2.1.1" + "@0x/typescript-typings" "^4.1.0" + "@0x/utils" "^4.2.2" + "@0x/web3-wrapper" "^6.0.2" + ethereum-types "^2.1.0" + lodash "^4.17.11" + "@0x/contracts-erc721@1.0.8": version "1.0.8" resolved "https://registry.npmjs.org/@0x/contracts-erc721/-/contracts-erc721-1.0.8.tgz#d3746c26eec57662654557121601b5bb81085637" @@ -516,6 +548,20 @@ ethereum-types "^2.1.0" lodash "^4.17.11" +"@0x/contracts-erc721@^1.0.2", "@0x/contracts-erc721@^1.0.9": + version "1.0.9" + resolved "https://registry.npmjs.org/@0x/contracts-erc721/-/contracts-erc721-1.0.9.tgz#3991858a3bf5a80dcd6e5fd65e938f8adc3b347c" + integrity sha512-Q4T93VEUChyLAz1bNRLidCtJ2/bfU1vsbeZGQeCrmm/Lcjaqm72B44SpLAiLBdTpyTfWT5gfvK+uQr1BtXTUVQ== + dependencies: + "@0x/base-contract" "^5.0.2" + "@0x/contracts-utils" "2.0.1" + "@0x/types" "^2.1.1" + "@0x/typescript-typings" "^4.1.0" + "@0x/utils" "^4.2.2" + "@0x/web3-wrapper" "^6.0.2" + ethereum-types "^2.1.0" + lodash "^4.17.11" + "@0x/contracts-exchange-libs@1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@0x/contracts-exchange-libs/-/contracts-exchange-libs-1.0.2.tgz#0682c01cdb3e36100bda0ffbdf9badb5b8a01fc4" @@ -530,6 +576,21 @@ ethereum-types "^2.0.0" lodash "^4.17.5" +"@0x/contracts-exchange-libs@^1.0.2": + version "1.1.3" + resolved "https://registry.npmjs.org/@0x/contracts-exchange-libs/-/contracts-exchange-libs-1.1.3.tgz#dc9429e9c5fc750e9f5006e5ad53ebd7aa577c28" + integrity sha512-M2kAMN6SO78sMyCuJLjen10CqoUNkeCFD2T8MYMpMcWWWFXTlyyeJgPllZf/ySlXSBziyJUcCRZjdwbZfF7AYQ== + dependencies: + "@0x/base-contract" "^5.0.2" + "@0x/contracts-utils" "^2.0.8" + "@0x/order-utils" "^7.0.2" + "@0x/types" "^2.1.1" + "@0x/typescript-typings" "^4.1.0" + "@0x/utils" "^4.2.2" + "@0x/web3-wrapper" "^6.0.2" + ethereum-types "^2.1.0" + lodash "^4.17.11" + "@0x/contracts-exchange@1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@0x/contracts-exchange/-/contracts-exchange-1.0.2.tgz#4c02378b26a7bf6324e16a41f2851c43fed82c63" @@ -565,6 +626,22 @@ ethereumjs-util "^5.1.1" lodash "^4.17.5" +"@0x/contracts-utils@^2.0.1", "@0x/contracts-utils@^2.0.8": + version "2.0.8" + resolved "https://registry.npmjs.org/@0x/contracts-utils/-/contracts-utils-2.0.8.tgz#b6a3775296e04c7ca9ebea7eae56fda48a43239d" + integrity sha512-5I1wq4ImjsIgjBNDl5F6qwJMDc6sm52vVGIxz+v9N6hUcJwaxa/SYeZ4EA5BpFdHK73xtvNe4CeRK2+g9Pt5UA== + dependencies: + "@0x/base-contract" "^5.0.2" + "@0x/order-utils" "^7.0.2" + "@0x/types" "^2.1.1" + "@0x/typescript-typings" "^4.1.0" + "@0x/utils" "^4.2.2" + "@0x/web3-wrapper" "^6.0.2" + bn.js "^4.11.8" + ethereum-types "^2.1.0" + ethereumjs-util "^5.1.1" + lodash "^4.17.11" + "@0x/order-utils@^5.0.0": version "5.0.0" resolved "https://registry.yarnpkg.com/@0x/order-utils/-/order-utils-5.0.0.tgz#7f43e0310ace31738895881501c8dda9c3a3aefa" @@ -13605,8 +13682,6 @@ react-highlight@0xproject/react-highlight#react-peer-deps: dependencies: highlight.js "^9.11.0" highlightjs-solidity "^1.0.5" - react "^16.5.2" - react-dom "^16.5.2" react-hot-loader@^4.3.3: version "4.3.4" From c481e4267327f9f9e81a68fa91845f351ae2cb91 Mon Sep 17 00:00:00 2001 From: fragosti Date: Fri, 22 Mar 2019 16:21:02 -0700 Subject: [PATCH 84/95] Reset yarn.lock --- yarn.lock | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3d8e89ec47..1928b64de2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13620,16 +13620,6 @@ react-dom@^16.3.2: object-assign "^4.1.1" prop-types "^15.6.0" -react-dom@^16.4.2: - version "16.8.5" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.8.5.tgz#b3e37d152b49e07faaa8de41fdf562be3463335e" - integrity sha512-VIEIvZLpFafsfu4kgmftP5L8j7P1f0YThfVTrANMhZUFMDOsA6e0kfR6wxw/8xxKs4NB59TZYbxNdPCDW34x4w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.13.5" - react-dom@^16.5.2: version "16.5.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.2.tgz#b69ee47aa20bab5327b2b9d7c1fe2a30f2cfa9d7" @@ -13687,6 +13677,8 @@ react-highlight@0xproject/react-highlight#react-peer-deps: dependencies: highlight.js "^9.11.0" highlightjs-solidity "^1.0.5" + react "^16.4.2" + react-dom "^16.4.2" react-hot-loader@^4.3.3: version "4.3.4" @@ -13931,16 +13923,6 @@ react@^16.3.2: object-assign "^4.1.1" prop-types "^15.6.0" -react@^16.4.2: - version "16.8.5" - resolved "https://registry.npmjs.org/react/-/react-16.8.5.tgz#49be3b655489d74504ad994016407e8a0445de66" - integrity sha512-daCb9TD6FZGvJ3sg8da1tRAtIuw29PbKZW++NN4wqkbEvxL+bZpaaYb4xuftW/SpXmgacf1skXl/ddX6CdOlDw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.13.5" - react@^16.5.2: version "16.5.2" resolved "https://registry.yarnpkg.com/react/-/react-16.5.2.tgz#19f6b444ed139baa45609eee6dc3d318b3895d42" @@ -14812,14 +14794,6 @@ schedule@^0.5.0: dependencies: object-assign "^4.1.1" -scheduler@^0.13.5: - version "0.13.5" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.13.5.tgz#b7226625167041298af3b98088a9dbbf6d7733a8" - integrity sha512-K98vjkQX9OIt/riLhp6F+XtDPtMQhqNcf045vsh+pcuvHq+PHy1xCrH3pq1P40m6yR46lpVvVhKdEOtnimuUJw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - schema-utils@^0.4.4: version "0.4.7" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" From 6242e0aeec73837d34d8cfea78b365809c8447d2 Mon Sep 17 00:00:00 2001 From: ochikov Date: Mon, 25 Mar 2019 00:21:07 +0200 Subject: [PATCH 85/95] Update constants.ts --- packages/sol-compiler/src/utils/constants.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sol-compiler/src/utils/constants.ts b/packages/sol-compiler/src/utils/constants.ts index 1e0520ed00..9dd54f14dd 100644 --- a/packages/sol-compiler/src/utils/constants.ts +++ b/packages/sol-compiler/src/utils/constants.ts @@ -6,6 +6,7 @@ export const constants = { LATEST_ARTIFACT_VERSION: '2.0.0', SOLC_BIN_DIR: path.join(__dirname, '..', '..', 'solc_bin'), SOLC_BIN_PATHS: { + '0.5.6': 'soljson-v0.5.6+commit.b259423e.js', '0.5.5': 'soljson-v0.5.5+commit.47a71e8f.js', '0.5.4': 'soljson-v0.5.4+commit.9549d8ff.js', '0.5.3': 'soljson-v0.5.3+commit.10d17f24.js', From 4f25ff6a50bb33d3639d75e5ff5fdd57feacedaf Mon Sep 17 00:00:00 2001 From: Michael Huang Date: Mon, 25 Mar 2019 10:25:41 -0500 Subject: [PATCH 86/95] local_message_signer middleware for web3.py (#1713) --- python-packages/cmd_pkgs_in_dep_order.py | 1 + python-packages/middlewares/.pylintrc | 3 + python-packages/middlewares/CHANGELOG.json | 11 + python-packages/middlewares/README.md | 46 ++++ python-packages/middlewares/setup.py | 214 ++++++++++++++++++ python-packages/middlewares/src/conf.py | 55 +++++ .../middlewares/src/doc_static/.gitkeep | 0 .../middlewares/src/doc_templates/.gitkeep | 0 python-packages/middlewares/src/index.rst | 25 ++ .../middlewares/src/zero_ex/__init__.py | 2 + .../src/zero_ex/middlewares/__init__.py | 1 + .../middlewares/local_message_signer.py | 109 +++++++++ .../src/zero_ex/middlewares/py.typed | 0 .../middlewares/stubs/distutils/__init__.pyi | 0 .../stubs/distutils/command/__init__.pyi | 0 .../stubs/distutils/command/clean.pyi | 7 + .../stubs/eth_account/__init__.pyi | 1 + .../middlewares/stubs/eth_account/local.pyi | 1 + .../stubs/eth_account/messages.pyi | 0 .../middlewares/stubs/eth_keys/__init__.pyi | 0 .../middlewares/stubs/eth_keys/datatypes.pyi | 1 + .../middlewares/stubs/eth_utils/__init__.pyi | 3 + .../middlewares/stubs/hexbytes/HexBytes.pyi | 1 + .../middlewares/stubs/hexbytes/__init__.pyi | 0 .../middlewares/stubs/pytest/__init__.pyi | 0 .../middlewares/stubs/pytest/raises.pyi | 1 + .../middlewares/stubs/setuptools/__init__.pyi | 8 + .../stubs/setuptools/command/__init__.pyi | 0 .../stubs/setuptools/command/test.pyi | 3 + .../middlewares/stubs/web3/__init__.pyi | 8 + .../middlewares/stubs/web3/exceptions.pyi | 0 .../stubs/web3/providers/__init__.pyi | 0 .../middlewares/stubs/web3/providers/base.pyi | 1 + .../middlewares/stubs/web3/utils/__init__.pyi | 0 .../stubs/web3/utils/datatypes.pyi | 0 python-packages/middlewares/test/__init__.py | 1 + .../test/test_local_message_signer.py | 40 ++++ python-packages/middlewares/tox.ini | 25 ++ 38 files changed, 568 insertions(+) create mode 100644 python-packages/middlewares/.pylintrc create mode 100644 python-packages/middlewares/CHANGELOG.json create mode 100644 python-packages/middlewares/README.md create mode 100755 python-packages/middlewares/setup.py create mode 100644 python-packages/middlewares/src/conf.py create mode 100644 python-packages/middlewares/src/doc_static/.gitkeep create mode 100644 python-packages/middlewares/src/doc_templates/.gitkeep create mode 100644 python-packages/middlewares/src/index.rst create mode 100644 python-packages/middlewares/src/zero_ex/__init__.py create mode 100644 python-packages/middlewares/src/zero_ex/middlewares/__init__.py create mode 100644 python-packages/middlewares/src/zero_ex/middlewares/local_message_signer.py create mode 100644 python-packages/middlewares/src/zero_ex/middlewares/py.typed create mode 100644 python-packages/middlewares/stubs/distutils/__init__.pyi create mode 100644 python-packages/middlewares/stubs/distutils/command/__init__.pyi create mode 100644 python-packages/middlewares/stubs/distutils/command/clean.pyi create mode 100644 python-packages/middlewares/stubs/eth_account/__init__.pyi create mode 100644 python-packages/middlewares/stubs/eth_account/local.pyi create mode 100644 python-packages/middlewares/stubs/eth_account/messages.pyi create mode 100644 python-packages/middlewares/stubs/eth_keys/__init__.pyi create mode 100644 python-packages/middlewares/stubs/eth_keys/datatypes.pyi create mode 100644 python-packages/middlewares/stubs/eth_utils/__init__.pyi create mode 100644 python-packages/middlewares/stubs/hexbytes/HexBytes.pyi create mode 100644 python-packages/middlewares/stubs/hexbytes/__init__.pyi create mode 100644 python-packages/middlewares/stubs/pytest/__init__.pyi create mode 100644 python-packages/middlewares/stubs/pytest/raises.pyi create mode 100644 python-packages/middlewares/stubs/setuptools/__init__.pyi create mode 100644 python-packages/middlewares/stubs/setuptools/command/__init__.pyi create mode 100644 python-packages/middlewares/stubs/setuptools/command/test.pyi create mode 100644 python-packages/middlewares/stubs/web3/__init__.pyi create mode 100644 python-packages/middlewares/stubs/web3/exceptions.pyi create mode 100644 python-packages/middlewares/stubs/web3/providers/__init__.pyi create mode 100644 python-packages/middlewares/stubs/web3/providers/base.pyi create mode 100644 python-packages/middlewares/stubs/web3/utils/__init__.pyi create mode 100644 python-packages/middlewares/stubs/web3/utils/datatypes.pyi create mode 100644 python-packages/middlewares/test/__init__.py create mode 100644 python-packages/middlewares/test/test_local_message_signer.py create mode 100644 python-packages/middlewares/tox.ini diff --git a/python-packages/cmd_pkgs_in_dep_order.py b/python-packages/cmd_pkgs_in_dep_order.py index ec739adc05..a56e95bac3 100755 --- a/python-packages/cmd_pkgs_in_dep_order.py +++ b/python-packages/cmd_pkgs_in_dep_order.py @@ -15,6 +15,7 @@ PACKAGE_DEPENDENCY_LIST = [ "json_schemas", "sra_client", "order_utils", + "middlewares", "contract_demo" ] diff --git a/python-packages/middlewares/.pylintrc b/python-packages/middlewares/.pylintrc new file mode 100644 index 0000000000..937bc6313b --- /dev/null +++ b/python-packages/middlewares/.pylintrc @@ -0,0 +1,3 @@ +[MESSAGES CONTROL] +disable=C0330,line-too-long,fixme,too-few-public-methods,too-many-ancestors +# C0330 is "bad hanging indent". we use indents per `black`. diff --git a/python-packages/middlewares/CHANGELOG.json b/python-packages/middlewares/CHANGELOG.json new file mode 100644 index 0000000000..497be22cfb --- /dev/null +++ b/python-packages/middlewares/CHANGELOG.json @@ -0,0 +1,11 @@ +[ + { + "version": "1.0.0", + "changes": [ + { + "note": "Initial publish", + "pr": 1713 + } + ] + } +] diff --git a/python-packages/middlewares/README.md b/python-packages/middlewares/README.md new file mode 100644 index 0000000000..a219fd1f5d --- /dev/null +++ b/python-packages/middlewares/README.md @@ -0,0 +1,46 @@ +## 0x-middlewares + +Web3 middlewares for 0x applications. + +Read the [documentation](http://0x-middlewares-py.s3-website-us-east-1.amazonaws.com/) + +## Installing + +```bash +pip install 0x-middlewares +``` + +## Contributing + +We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository. + +Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started. + +### Install Code and Dependencies + +Ensure that you have installed Python >=3.6 and Docker. Then: + +```bash +pip install -e .[dev] +``` + +### Test + +Tests depend on running a local ethereum JSON-RPC server. For convenience, a docker container is provided that has ganache-cli. +A shortcut is provided to run that docker container: `./setup.py ganache`. With that running, the tests can be run with `./setup.py test`. + +### Clean + +`./setup.py clean --all` + +### Lint + +`./setup.py lint` + +### Build Documentation + +`./setup.py build_sphinx` + +### More + +See `./setup.py --help-commands` for more info. diff --git a/python-packages/middlewares/setup.py b/python-packages/middlewares/setup.py new file mode 100755 index 0000000000..fc3687dfd5 --- /dev/null +++ b/python-packages/middlewares/setup.py @@ -0,0 +1,214 @@ +#!/usr/bin/env python + +"""setuptools module for middlewares package.""" + +import subprocess # nosec +from shutil import rmtree +from os import environ, path +from sys import argv + +from distutils.command.clean import clean +import distutils.command.build_py +from setuptools import find_packages, setup +from setuptools.command.test import test as TestCommand + + +class TestCommandExtension(TestCommand): + """Run pytest tests.""" + + def run_tests(self): + """Invoke pytest.""" + import pytest + + exit(pytest.main(["--doctest-modules"])) + + +class LintCommand(distutils.command.build_py.build_py): + """Custom setuptools command class for running linters.""" + + description = "Run linters" + + def run(self): + """Run linter shell commands.""" + lint_commands = [ + # formatter: + "black --line-length 79 --check --diff src test setup.py".split(), + # style guide checker (formerly pep8): + "pycodestyle src test setup.py".split(), + # docstring style checker: + "pydocstyle src test setup.py".split(), + # static type checker: + "mypy src test setup.py".split(), + # security issue checker: + "bandit -r src ./setup.py".split(), + # general linter: + "pylint src test setup.py".split(), + # pylint takes relatively long to run, so it runs last, to enable + # fast failures. + ] + + # tell mypy where to find interface stubs for 3rd party libs + environ["MYPYPATH"] = path.join( + path.dirname(path.realpath(argv[0])), "stubs" + ) + + for lint_command in lint_commands: + print( + "Running lint command `", " ".join(lint_command).strip(), "`" + ) + subprocess.check_call(lint_command) # nosec + + +class CleanCommandExtension(clean): + """Custom command to do custom cleanup.""" + + def run(self): + """Run the regular clean, followed by our custom commands.""" + super().run() + rmtree("dist", ignore_errors=True) + rmtree(".mypy_cache", ignore_errors=True) + rmtree(".tox", ignore_errors=True) + rmtree(".pytest_cache", ignore_errors=True) + rmtree("src/0x_middlewares.egg-info", ignore_errors=True) + + +class TestPublishCommand(distutils.command.build_py.build_py): + """Custom command to publish to test.pypi.org.""" + + description = ( + "Publish dist/* to test.pypi.org." "Run sdist & bdist_wheel first." + ) + + def run(self): + """Run twine to upload to test.pypi.org.""" + subprocess.check_call( # nosec + ( + "twine upload --repository-url https://test.pypi.org/legacy/" + + " --verbose dist/*" + ).split() + ) + + +class PublishCommand(distutils.command.build_py.build_py): + """Custom command to publish to pypi.org.""" + + description = "Publish dist/* to pypi.org. Run sdist & bdist_wheel first." + + def run(self): + """Run twine to upload to pypi.org.""" + subprocess.check_call("twine upload dist/*".split()) # nosec + + +class PublishDocsCommand(distutils.command.build_py.build_py): + """Custom command to publish docs to S3.""" + + description = ( + "Publish docs to " + + "http://0x-middlewares-py.s3-website-us-east-1.amazonaws.com/" + ) + + def run(self): + """Run npm package `discharge` to build & upload docs.""" + subprocess.check_call("discharge deploy".split()) # nosec + + +class GanacheCommand(distutils.command.build_py.build_py): + """Custom command to publish to pypi.org.""" + + description = "Run ganache daemon to support tests." + + def run(self): + """Run ganache.""" + cmd_line = ( + "docker run -d -p 8545:8545 0xorg/ganache-cli:2.2.2" + ).split() + subprocess.call(cmd_line) # nosec + + +with open("README.md", "r") as file_handle: + README_MD = file_handle.read() + + +setup( + name="0x-middlewares", + version="1.0.1", + description="Web3 middlewares for 0x applications", + long_description=README_MD, + long_description_content_type="text/markdown", + url="https://github.com/0xproject/0x-monorepo/python-packages/middlewares", + author="Michael Huang", + author_email="michaelhly@users.noreply.github.com", + cmdclass={ + "clean": CleanCommandExtension, + "lint": LintCommand, + "test": TestCommandExtension, + "test_publish": TestPublishCommand, + "publish": PublishCommand, + "publish_docs": PublishDocsCommand, + "ganache": GanacheCommand, + }, + install_requires=[ + "eth-account", + "eth-keys", + "hexbytes", + "hypothesis>=3.31.2", # HACK! this is web3's dependency! + # above works around https://github.com/ethereum/web3.py/issues/1179 + "mypy_extensions", + ], + extras_require={ + "dev": [ + "0x-contract-addresses", + "0x-order-utils", + "0x-web3", + "bandit", + "black", + "coverage", + "coveralls", + "eth_utils", + "mypy", + "mypy_extensions", + "pycodestyle", + "pydocstyle", + "pylint", + "pytest", + "sphinx", + "sphinx-autodoc-typehints", + "tox", + "twine", + ] + }, + python_requires=">=3.6, <4", + package_data={"zero_ex.middlewares": ["py.typed"]}, + package_dir={"": "src"}, + license="Apache 2.0", + keywords=( + "ethereum cryptocurrency 0x decentralized blockchain dex exchange" + ), + namespace_packages=["zero_ex"], + packages=find_packages("src"), + classifiers=[ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: Financial and Insurance Industry", + "License :: OSI Approved :: Apache Software License", + "Natural Language :: English", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Office/Business :: Financial", + "Topic :: Other/Nonlisted Topic", + "Topic :: Security :: Cryptography", + "Topic :: Software Development :: Libraries", + "Topic :: Utilities", + ], + zip_safe=False, # required per mypy + command_options={ + "build_sphinx": { + "source_dir": ("setup.py", "src"), + "build_dir": ("setup.py", "build/docs"), + } + }, +) diff --git a/python-packages/middlewares/src/conf.py b/python-packages/middlewares/src/conf.py new file mode 100644 index 0000000000..4bb5a2f9f1 --- /dev/null +++ b/python-packages/middlewares/src/conf.py @@ -0,0 +1,55 @@ +"""Configuration file for the Sphinx documentation builder.""" + +# Reference: http://www.sphinx-doc.org/en/master/config + +from typing import List +import pkg_resources + + +# pylint: disable=invalid-name +# because these variables are not named in upper case, as globals should be. + +project = "0x-middlewares" +# pylint: disable=redefined-builtin +copyright = "2019, ZeroEx, Intl." +author = "Michael Hwang" +version = pkg_resources.get_distribution("0x-middlewares").version +release = "" # The full version, including alpha/beta/rc tags + +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.doctest", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.viewcode", + "sphinx_autodoc_typehints", +] + +templates_path = ["doc_templates"] + +source_suffix = ".rst" +# eg: source_suffix = [".rst", ".md"] + +master_doc = "index" # The master toctree document. + +language = None + +exclude_patterns: List[str] = [] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = None + +html_theme = "alabaster" + +html_static_path = ["doc_static"] +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". + +# Output file base name for HTML help builder. +htmlhelp_basename = "middlewarespydoc" + +# -- Extension configuration: + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {"https://docs.python.org/": None} diff --git a/python-packages/middlewares/src/doc_static/.gitkeep b/python-packages/middlewares/src/doc_static/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/src/doc_templates/.gitkeep b/python-packages/middlewares/src/doc_templates/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/src/index.rst b/python-packages/middlewares/src/index.rst new file mode 100644 index 0000000000..9ef2efeccd --- /dev/null +++ b/python-packages/middlewares/src/index.rst @@ -0,0 +1,25 @@ +.. source for the sphinx-generated build/docs/web/index.html + +Python zero_ex.middlewares +========================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + +.. automodule:: zero_ex.middlewares + :members: + +zero_ex.middlewares.local_message_signer +---------------------------------------- + +.. automodule:: zero_ex.middlewares.local_message_signer + :members: + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/python-packages/middlewares/src/zero_ex/__init__.py b/python-packages/middlewares/src/zero_ex/__init__.py new file mode 100644 index 0000000000..e90d833db6 --- /dev/null +++ b/python-packages/middlewares/src/zero_ex/__init__.py @@ -0,0 +1,2 @@ +"""0x Python API.""" +__import__("pkg_resources").declare_namespace(__name__) diff --git a/python-packages/middlewares/src/zero_ex/middlewares/__init__.py b/python-packages/middlewares/src/zero_ex/middlewares/__init__.py new file mode 100644 index 0000000000..8b5b06dc56 --- /dev/null +++ b/python-packages/middlewares/src/zero_ex/middlewares/__init__.py @@ -0,0 +1 @@ +"""Web3 middlewares for 0x applications.""" diff --git a/python-packages/middlewares/src/zero_ex/middlewares/local_message_signer.py b/python-packages/middlewares/src/zero_ex/middlewares/local_message_signer.py new file mode 100644 index 0000000000..a570544f41 --- /dev/null +++ b/python-packages/middlewares/src/zero_ex/middlewares/local_message_signer.py @@ -0,0 +1,109 @@ +"""Middleware that captures all 'eth_sign' requests to the JSON-RPC-Server. + +An adaptation of the signing middleware from `web3.py +`_. +This middleware intercepts all 'eth_sign' requests to +an ethereum JSON RPC-Server and signs messages with a local private key. +""" + +from functools import singledispatch +from typing import Dict, List, Set, Tuple, Union +from eth_account import Account, messages +from eth_account.local import LocalAccount +from eth_keys.datatypes import PrivateKey +from hexbytes import HexBytes + + +@singledispatch +def _to_account(private_key_or_account): + """Get a `LocalAccount` instance from a private_key or a `LocalAccount`. + + Note that this function is overloaded based on the type on input. This + implementation is the base case where none of the supported types are + matched and we throw an exception. + """ + raise TypeError( + "key must be one of the types:" + "eth_keys.datatype.PrivateKey, " + "eth_account.local.LocalAccount, " + "or raw private key as a hex string or byte string. " + "Was of type {0}".format(type(private_key_or_account)) + ) + + +def _private_key_to_account(private_key): + """Get the account associated with the private key.""" + if isinstance(private_key, PrivateKey): + private_key = private_key.to_hex() + else: + private_key = HexBytes(private_key).hex() + return Account().privateKeyToAccount(private_key) + + +_to_account.register(LocalAccount, lambda x: x) +_to_account.register(PrivateKey, _private_key_to_account) +_to_account.register(str, _private_key_to_account) +_to_account.register(bytes, _private_key_to_account) + + +def construct_local_message_signer( + private_key_or_account: Union[ + Union[LocalAccount, PrivateKey, str], + List[Union[LocalAccount, PrivateKey, str]], + Tuple[Union[LocalAccount, PrivateKey, str]], + Set[Union[LocalAccount, PrivateKey, str]], + ] +): + """Construct a local messager signer middleware. + + :param private_key_or_account: a single private key or a tuple, + list, or set of private keys. Keys can be any of the following + formats: + + - An `eth_account.LocalAccount` object + - An `eth_keys.PrivateKey` object + - A raw private key as a hex `string` or `bytes` + :returns: callable local_message_signer_middleware + + :Example: + + >>> from web3 import Web3 + >>> from zero_ex.middlewares.local_message_signer import ( + ... construct_local_message_signer) + >>> WEB3_RPC_URL="https://mainnet.infura.io/v3/INFURA_API_KEY" + >>> PRIVATE_KEY=( + ... "f2f48ee19680706196e2e339e5da3491186e0c4c5030670656b0e0164837257d") + >>> web3_instance = Web3.HTTPProvider(WEB3_RPC_URL) + >>> web3_instance.middlewares.add( + ... construct_local_message_signer(PRIVATE_KEY)) + + """ + if not isinstance(private_key_or_account, (list, tuple, set)): + private_key_or_account = [private_key_or_account] + accounts = [_to_account(pkoa) for pkoa in private_key_or_account] + address_to_accounts: Dict[str, LocalAccount] = { + account.address: account for account in accounts + } + + def local_message_signer_middleware( + make_request, web3 + ): # pylint: disable=unused-argument + def middleware(method, params): + if method != "eth_sign": + return make_request(method, params) + account_address, message = params[:2] + account = address_to_accounts[account_address] + # We will assume any string which looks like a hex is expected + # to be converted to hex. Non-hexable strings are forcibly + # converted by encoding them to utf-8 + try: + message = HexBytes(message) + except Exception: # pylint: disable=broad-except + message = HexBytes(message.encode("utf-8")) + msg_hash_hexbytes = messages.defunct_hash_message(message) + ec_signature = account.signHash(msg_hash_hexbytes) + return {"result": ec_signature.signature} + + return middleware + + return local_message_signer_middleware diff --git a/python-packages/middlewares/src/zero_ex/middlewares/py.typed b/python-packages/middlewares/src/zero_ex/middlewares/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/distutils/__init__.pyi b/python-packages/middlewares/stubs/distutils/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/distutils/command/__init__.pyi b/python-packages/middlewares/stubs/distutils/command/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/distutils/command/clean.pyi b/python-packages/middlewares/stubs/distutils/command/clean.pyi new file mode 100644 index 0000000000..46a42ddb13 --- /dev/null +++ b/python-packages/middlewares/stubs/distutils/command/clean.pyi @@ -0,0 +1,7 @@ +from distutils.core import Command + +class clean(Command): + def initialize_options(self: clean) -> None: ... + def finalize_options(self: clean) -> None: ... + def run(self: clean) -> None: ... + ... diff --git a/python-packages/middlewares/stubs/eth_account/__init__.pyi b/python-packages/middlewares/stubs/eth_account/__init__.pyi new file mode 100644 index 0000000000..5caed9e96f --- /dev/null +++ b/python-packages/middlewares/stubs/eth_account/__init__.pyi @@ -0,0 +1 @@ +class Account: ... diff --git a/python-packages/middlewares/stubs/eth_account/local.pyi b/python-packages/middlewares/stubs/eth_account/local.pyi new file mode 100644 index 0000000000..72b351fe5f --- /dev/null +++ b/python-packages/middlewares/stubs/eth_account/local.pyi @@ -0,0 +1 @@ +class LocalAccount: ... diff --git a/python-packages/middlewares/stubs/eth_account/messages.pyi b/python-packages/middlewares/stubs/eth_account/messages.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/eth_keys/__init__.pyi b/python-packages/middlewares/stubs/eth_keys/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/eth_keys/datatypes.pyi b/python-packages/middlewares/stubs/eth_keys/datatypes.pyi new file mode 100644 index 0000000000..8d2a8dd32c --- /dev/null +++ b/python-packages/middlewares/stubs/eth_keys/datatypes.pyi @@ -0,0 +1 @@ +class PrivateKey: ... diff --git a/python-packages/middlewares/stubs/eth_utils/__init__.pyi b/python-packages/middlewares/stubs/eth_utils/__init__.pyi new file mode 100644 index 0000000000..3343950068 --- /dev/null +++ b/python-packages/middlewares/stubs/eth_utils/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Union + +def to_checksum_address(value: Union[str, bytes]) -> str: ... diff --git a/python-packages/middlewares/stubs/hexbytes/HexBytes.pyi b/python-packages/middlewares/stubs/hexbytes/HexBytes.pyi new file mode 100644 index 0000000000..bc88efe52a --- /dev/null +++ b/python-packages/middlewares/stubs/hexbytes/HexBytes.pyi @@ -0,0 +1 @@ +class HexBytes: ... diff --git a/python-packages/middlewares/stubs/hexbytes/__init__.pyi b/python-packages/middlewares/stubs/hexbytes/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/pytest/__init__.pyi b/python-packages/middlewares/stubs/pytest/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/pytest/raises.pyi b/python-packages/middlewares/stubs/pytest/raises.pyi new file mode 100644 index 0000000000..2e3b29f3dc --- /dev/null +++ b/python-packages/middlewares/stubs/pytest/raises.pyi @@ -0,0 +1 @@ +def raises(exception: Exception) -> ExceptionInfo: ... diff --git a/python-packages/middlewares/stubs/setuptools/__init__.pyi b/python-packages/middlewares/stubs/setuptools/__init__.pyi new file mode 100644 index 0000000000..8ea8d32b7e --- /dev/null +++ b/python-packages/middlewares/stubs/setuptools/__init__.pyi @@ -0,0 +1,8 @@ +from distutils.dist import Distribution +from typing import Any, List + +def setup(**attrs: Any) -> Distribution: ... + +class Command: ... + +def find_packages(where: str) -> List[str]: ... diff --git a/python-packages/middlewares/stubs/setuptools/command/__init__.pyi b/python-packages/middlewares/stubs/setuptools/command/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/setuptools/command/test.pyi b/python-packages/middlewares/stubs/setuptools/command/test.pyi new file mode 100644 index 0000000000..c5ec770ad3 --- /dev/null +++ b/python-packages/middlewares/stubs/setuptools/command/test.pyi @@ -0,0 +1,3 @@ +from setuptools import Command + +class test(Command): ... diff --git a/python-packages/middlewares/stubs/web3/__init__.pyi b/python-packages/middlewares/stubs/web3/__init__.pyi new file mode 100644 index 0000000000..c5aa964d3d --- /dev/null +++ b/python-packages/middlewares/stubs/web3/__init__.pyi @@ -0,0 +1,8 @@ +from typing import Dict, Optional, Union + +from web3.utils import datatypes +from web3.providers.base import BaseProvider + +class Web3: + class HTTPProvider(BaseProvider): ... + def __init__(self, provider: BaseProvider) -> None: ... diff --git a/python-packages/middlewares/stubs/web3/exceptions.pyi b/python-packages/middlewares/stubs/web3/exceptions.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/web3/providers/__init__.pyi b/python-packages/middlewares/stubs/web3/providers/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/web3/providers/base.pyi b/python-packages/middlewares/stubs/web3/providers/base.pyi new file mode 100644 index 0000000000..7e6eaf3cbd --- /dev/null +++ b/python-packages/middlewares/stubs/web3/providers/base.pyi @@ -0,0 +1 @@ +class BaseProvider: ... diff --git a/python-packages/middlewares/stubs/web3/utils/__init__.pyi b/python-packages/middlewares/stubs/web3/utils/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/stubs/web3/utils/datatypes.pyi b/python-packages/middlewares/stubs/web3/utils/datatypes.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/middlewares/test/__init__.py b/python-packages/middlewares/test/__init__.py new file mode 100644 index 0000000000..88975131fe --- /dev/null +++ b/python-packages/middlewares/test/__init__.py @@ -0,0 +1 @@ +"""Tests of zero_x.middlewares.""" diff --git a/python-packages/middlewares/test/test_local_message_signer.py b/python-packages/middlewares/test/test_local_message_signer.py new file mode 100644 index 0000000000..d4031fc8f4 --- /dev/null +++ b/python-packages/middlewares/test/test_local_message_signer.py @@ -0,0 +1,40 @@ +"""Tests of 0x.middlewares.local_message_signer.""" + +from eth_utils import to_checksum_address +from web3 import Web3 +from zero_ex.contract_addresses import NETWORK_TO_ADDRESSES, NetworkId +from zero_ex.middlewares.local_message_signer import ( + construct_local_message_signer, +) +from zero_ex.order_utils import ( + generate_order_hash_hex, + is_valid_signature, + make_empty_order, + sign_hash, +) + + +def test_local_message_signer__sign_order(): + """Test signing order with the local_message_signer middleware""" + expected_signature = ( + "0x1cd17d75b891accf16030c572a64cf9e7955de63bcafa5b084439cec630ade2d7" + "c00f47a2f4d5b6a4508267bf4b8527100bd97cf1af9984c0a58e42d25b13f4f0a03" + ) + address = "0x5409ED021D9299bf6814279A6A1411A7e866A631" + exchange = NETWORK_TO_ADDRESSES[NetworkId.GANACHE].exchange + private_key = ( + "f2f48ee19680706196e2e339e5da3491186e0c4c5030670656b0e0164837257d" + ) + web3_rpc_url = "http://127.0.0.1:8545" + web3_instance = Web3.HTTPProvider(web3_rpc_url) + web3_instance.middlewares.add(construct_local_message_signer(private_key)) + order = make_empty_order() + order_hash = generate_order_hash_hex(order, exchange) + signature = sign_hash( + web3_instance, to_checksum_address(address), order_hash + ) + assert signature == expected_signature + is_valid = is_valid_signature( + web3_instance, order_hash, signature, address + )[0] + assert is_valid is True diff --git a/python-packages/middlewares/tox.ini b/python-packages/middlewares/tox.ini new file mode 100644 index 0000000000..cb4d2548e6 --- /dev/null +++ b/python-packages/middlewares/tox.ini @@ -0,0 +1,25 @@ +# tox (https://tox.readthedocs.io/) is a tool for running tests +# in multiple virtualenvs. This configuration file will run the +# test suite on all supported python versions. To use it, "pip install tox" +# and then run "tox" from this directory. + +[tox] +envlist = py37 + +[testenv] +commands = + pip install -e .[dev] + python setup.py test + +[testenv:run_tests_against_test_deployment] +commands = + # install dependencies from real PyPI + pip install eth-account eth-keys hexbytes hypothesis>=3.31.2 mypy_extensions + # install package-under-test from test PyPI + pip install --index-url https://test.pypi.org/legacy/ 0x-middlewares + pytest test + +[testenv:run_tests_against_deployment] +commands = + pip install 0x-middlewares + pytest test From 095b52e0b235da1b7f724528e1b92c74769e0467 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Fri, 22 Mar 2019 13:38:18 -0700 Subject: [PATCH 87/95] Make hashing methods public --- contracts/coordinator/compiler.json | 7 +-- .../src/libs/LibCoordinatorApproval.sol | 3 +- .../src/libs/LibZeroExTransaction.sol | 3 +- .../coordinator/contracts/test/TestLibs.sol | 61 ------------------- contracts/coordinator/package.json | 2 +- contracts/coordinator/src/artifacts.ts | 2 - contracts/coordinator/src/wrappers.ts | 1 - contracts/coordinator/test/libs.ts | 14 ++--- contracts/coordinator/tsconfig.json | 1 - 9 files changed, 13 insertions(+), 81 deletions(-) delete mode 100644 contracts/coordinator/contracts/test/TestLibs.sol diff --git a/contracts/coordinator/compiler.json b/contracts/coordinator/compiler.json index 8df8f3cd33..efd5e13a2b 100644 --- a/contracts/coordinator/compiler.json +++ b/contracts/coordinator/compiler.json @@ -21,10 +21,5 @@ } } }, - "contracts": [ - "src/Coordinator.sol", - "src/registry/CoordinatorRegistry.sol", - "test/TestLibs.sol", - "test/TestMixins.sol" - ] + "contracts": ["src/Coordinator.sol", "src/registry/CoordinatorRegistry.sol", "test/TestMixins.sol"] } diff --git a/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol b/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol index 7f9ec9b134..eee99537c6 100644 --- a/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol +++ b/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol @@ -17,6 +17,7 @@ */ pragma solidity ^0.5.5; +pragma experimental "ABIEncoderV2"; import "./LibEIP712Domain.sol"; @@ -46,7 +47,7 @@ contract LibCoordinatorApproval is /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval. /// @return EIP712 hash of the Coordinator approval message with the domain separator of this contract. function getCoordinatorApprovalHash(CoordinatorApproval memory approval) - internal + public view returns (bytes32 approvalHash) { diff --git a/contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol b/contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol index 8d388a55a2..741cf3c43d 100644 --- a/contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol +++ b/contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol @@ -17,6 +17,7 @@ */ pragma solidity ^0.5.5; +pragma experimental "ABIEncoderV2"; import "./LibEIP712Domain.sol"; @@ -44,7 +45,7 @@ contract LibZeroExTransaction is /// @param transaction 0x transaction containing salt, signerAddress, and data. /// @return EIP712 hash of the transaction with the domain separator of this contract. function getTransactionHash(ZeroExTransaction memory transaction) - internal + public view returns (bytes32 transactionHash) { diff --git a/contracts/coordinator/contracts/test/TestLibs.sol b/contracts/coordinator/contracts/test/TestLibs.sol deleted file mode 100644 index 8c615a5d42..0000000000 --- a/contracts/coordinator/contracts/test/TestLibs.sol +++ /dev/null @@ -1,61 +0,0 @@ -/* - - Copyright 2018 ZeroEx Intl. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -*/ - -pragma solidity ^0.5.5; -pragma experimental "ABIEncoderV2"; - -import "../src/libs/LibConstants.sol"; -import "../src/libs/LibCoordinatorApproval.sol"; -import "../src/libs/LibZeroExTransaction.sol"; - - -// solhint-disable no-empty-blocks -contract TestLibs is - LibConstants, - LibCoordinatorApproval, - LibZeroExTransaction -{ - constructor (address _exchange) - public - LibConstants(_exchange) - {} - - /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage using the domain separator of this contract. - /// @param approval Coordinator approval message containing the transaction hash, transaction signature, and expiration of the approval. - /// @return EIP712 hash of the Coordinator approval message with the domain separator of this contract. - function publicGetCoordinatorApprovalHash(CoordinatorApproval memory approval) - public - view - returns (bytes32 approvalHash) - { - approvalHash = getCoordinatorApprovalHash(approval); - return approvalHash; - } - - /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of the Exchange contract. - /// @param transaction 0x transaction containing salt, signerAddress, and data. - /// @return EIP712 hash of the transaction with the domain separator of the Exchange contract. - function publicGetTransactionHash(ZeroExTransaction memory transaction) - public - view - returns (bytes32 transactionHash) - { - transactionHash = getTransactionHash(transaction); - return transactionHash; - } -} diff --git a/contracts/coordinator/package.json b/contracts/coordinator/package.json index 8df2e578b4..b139b9d7a9 100644 --- a/contracts/coordinator/package.json +++ b/contracts/coordinator/package.json @@ -33,7 +33,7 @@ "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "./generated-artifacts/@(Coordinator|CoordinatorRegistry|TestLibs|TestMixins).json", + "abis": "./generated-artifacts/@(Coordinator|CoordinatorRegistry|TestMixins).json", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { diff --git a/contracts/coordinator/src/artifacts.ts b/contracts/coordinator/src/artifacts.ts index e32e231879..33ea7e16c6 100644 --- a/contracts/coordinator/src/artifacts.ts +++ b/contracts/coordinator/src/artifacts.ts @@ -7,11 +7,9 @@ import { ContractArtifact } from 'ethereum-types'; import * as Coordinator from '../generated-artifacts/Coordinator.json'; import * as CoordinatorRegistry from '../generated-artifacts/CoordinatorRegistry.json'; -import * as TestLibs from '../generated-artifacts/TestLibs.json'; import * as TestMixins from '../generated-artifacts/TestMixins.json'; export const artifacts = { Coordinator: Coordinator as ContractArtifact, CoordinatorRegistry: CoordinatorRegistry as ContractArtifact, - TestLibs: TestLibs as ContractArtifact, TestMixins: TestMixins as ContractArtifact, }; diff --git a/contracts/coordinator/src/wrappers.ts b/contracts/coordinator/src/wrappers.ts index d8e6cc9857..7a3d20d327 100644 --- a/contracts/coordinator/src/wrappers.ts +++ b/contracts/coordinator/src/wrappers.ts @@ -5,5 +5,4 @@ */ export * from '../generated-wrappers/coordinator'; export * from '../generated-wrappers/coordinator_registry'; -export * from '../generated-wrappers/test_libs'; export * from '../generated-wrappers/test_mixins'; diff --git a/contracts/coordinator/test/libs.ts b/contracts/coordinator/test/libs.ts index 85291d3583..8c08f0ec59 100644 --- a/contracts/coordinator/test/libs.ts +++ b/contracts/coordinator/test/libs.ts @@ -4,14 +4,14 @@ import { transactionHashUtils } from '@0x/order-utils'; import { BigNumber } from '@0x/utils'; import * as chai from 'chai'; -import { artifacts, hashUtils, TestLibsContract } from '../src'; +import { artifacts, CoordinatorContract, hashUtils } from '../src'; chaiSetup.configure(); const expect = chai.expect; const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper); describe('Libs tests', () => { - let testLibs: TestLibsContract; + let coordinatorContract: CoordinatorContract; const exchangeAddress = addressUtils.generatePseudoRandomAddress(); before(async () => { @@ -21,8 +21,8 @@ describe('Libs tests', () => { await blockchainLifecycle.revertAsync(); }); before(async () => { - testLibs = await TestLibsContract.deployFrom0xArtifactAsync( - artifacts.TestLibs, + coordinatorContract = await CoordinatorContract.deployFrom0xArtifactAsync( + artifacts.Coordinator, provider, txDefaults, exchangeAddress, @@ -44,7 +44,7 @@ describe('Libs tests', () => { data: '0x1234', }; const expectedTxHash = transactionHashUtils.getTransactionHashHex(tx); - const txHash = await testLibs.publicGetTransactionHash.callAsync(tx); + const txHash = await coordinatorContract.getTransactionHash.callAsync(tx); expect(expectedTxHash).to.eq(txHash); }); }); @@ -68,11 +68,11 @@ describe('Libs tests', () => { }; const expectedApprovalHash = hashUtils.getApprovalHashHex( signedTx, - testLibs.address, + coordinatorContract.address, txOrigin, approvalExpirationTimeSeconds, ); - const approvalHash = await testLibs.publicGetCoordinatorApprovalHash.callAsync(approval); + const approvalHash = await coordinatorContract.getCoordinatorApprovalHash.callAsync(approval); expect(expectedApprovalHash).to.eq(approvalHash); }); }); diff --git a/contracts/coordinator/tsconfig.json b/contracts/coordinator/tsconfig.json index 9de6c34a60..dc062512ca 100644 --- a/contracts/coordinator/tsconfig.json +++ b/contracts/coordinator/tsconfig.json @@ -5,7 +5,6 @@ "files": [ "generated-artifacts/Coordinator.json", "generated-artifacts/CoordinatorRegistry.json", - "generated-artifacts/TestLibs.json", "generated-artifacts/TestMixins.json" ], "exclude": ["./deploy/solc/solc_bin"] From e446e902f38ee693d849ca6cc33a9a9cfa84f9e1 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Fri, 22 Mar 2019 13:41:59 -0700 Subject: [PATCH 88/95] Remove TestMixins contract --- contracts/coordinator/compiler.json | 2 +- .../coordinator/contracts/test/TestMixins.sol | 37 ------------------- contracts/coordinator/package.json | 2 +- contracts/coordinator/src/artifacts.ts | 2 - contracts/coordinator/src/wrappers.ts | 1 - contracts/coordinator/test/mixins.ts | 8 ++-- contracts/coordinator/tsconfig.json | 6 +-- 7 files changed, 7 insertions(+), 51 deletions(-) delete mode 100644 contracts/coordinator/contracts/test/TestMixins.sol diff --git a/contracts/coordinator/compiler.json b/contracts/coordinator/compiler.json index efd5e13a2b..b5e9e3e156 100644 --- a/contracts/coordinator/compiler.json +++ b/contracts/coordinator/compiler.json @@ -21,5 +21,5 @@ } } }, - "contracts": ["src/Coordinator.sol", "src/registry/CoordinatorRegistry.sol", "test/TestMixins.sol"] + "contracts": ["src/Coordinator.sol", "src/registry/CoordinatorRegistry.sol"] } diff --git a/contracts/coordinator/contracts/test/TestMixins.sol b/contracts/coordinator/contracts/test/TestMixins.sol deleted file mode 100644 index cdadce171c..0000000000 --- a/contracts/coordinator/contracts/test/TestMixins.sol +++ /dev/null @@ -1,37 +0,0 @@ -/* - - Copyright 2018 ZeroEx Intl. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -*/ - -pragma solidity ^0.5.5; -pragma experimental "ABIEncoderV2"; - -import "../src/libs/LibConstants.sol"; -import "../src/MixinSignatureValidator.sol"; -import "../src/MixinCoordinatorApprovalVerifier.sol"; - - -// solhint-disable no-empty-blocks -contract TestMixins is - LibConstants, - MixinSignatureValidator, - MixinCoordinatorApprovalVerifier -{ - constructor (address _exchange) - public - LibConstants(_exchange) - {} -} diff --git a/contracts/coordinator/package.json b/contracts/coordinator/package.json index b139b9d7a9..afc8a0adc3 100644 --- a/contracts/coordinator/package.json +++ b/contracts/coordinator/package.json @@ -33,7 +33,7 @@ "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "./generated-artifacts/@(Coordinator|CoordinatorRegistry|TestMixins).json", + "abis": "./generated-artifacts/@(Coordinator|CoordinatorRegistry).json", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { diff --git a/contracts/coordinator/src/artifacts.ts b/contracts/coordinator/src/artifacts.ts index 33ea7e16c6..8276964486 100644 --- a/contracts/coordinator/src/artifacts.ts +++ b/contracts/coordinator/src/artifacts.ts @@ -7,9 +7,7 @@ import { ContractArtifact } from 'ethereum-types'; import * as Coordinator from '../generated-artifacts/Coordinator.json'; import * as CoordinatorRegistry from '../generated-artifacts/CoordinatorRegistry.json'; -import * as TestMixins from '../generated-artifacts/TestMixins.json'; export const artifacts = { Coordinator: Coordinator as ContractArtifact, CoordinatorRegistry: CoordinatorRegistry as ContractArtifact, - TestMixins: TestMixins as ContractArtifact, }; diff --git a/contracts/coordinator/src/wrappers.ts b/contracts/coordinator/src/wrappers.ts index 7a3d20d327..a88791dffa 100644 --- a/contracts/coordinator/src/wrappers.ts +++ b/contracts/coordinator/src/wrappers.ts @@ -5,4 +5,3 @@ */ export * from '../generated-wrappers/coordinator'; export * from '../generated-wrappers/coordinator_registry'; -export * from '../generated-wrappers/test_mixins'; diff --git a/contracts/coordinator/test/mixins.ts b/contracts/coordinator/test/mixins.ts index a862791b0f..2e79423e1b 100644 --- a/contracts/coordinator/test/mixins.ts +++ b/contracts/coordinator/test/mixins.ts @@ -16,7 +16,7 @@ import { BigNumber } from '@0x/utils'; import * as chai from 'chai'; import * as ethUtil from 'ethereumjs-util'; -import { ApprovalFactory, artifacts, constants, exchangeDataEncoder, TestMixinsContract } from '../src'; +import { ApprovalFactory, artifacts, constants, CoordinatorContract, exchangeDataEncoder } from '../src'; chaiSetup.configure(); const expect = chai.expect; @@ -26,7 +26,7 @@ describe('Mixins tests', () => { let transactionSignerAddress: string; let approvalSignerAddress1: string; let approvalSignerAddress2: string; - let mixins: TestMixinsContract; + let mixins: CoordinatorContract; let transactionFactory: TransactionFactory; let approvalFactory1: ApprovalFactory; let approvalFactory2: ApprovalFactory; @@ -40,8 +40,8 @@ describe('Mixins tests', () => { await blockchainLifecycle.revertAsync(); }); before(async () => { - mixins = await TestMixinsContract.deployFrom0xArtifactAsync( - artifacts.TestMixins, + mixins = await CoordinatorContract.deployFrom0xArtifactAsync( + artifacts.Coordinator, provider, txDefaults, exchangeAddress, diff --git a/contracts/coordinator/tsconfig.json b/contracts/coordinator/tsconfig.json index dc062512ca..ba2c48b6cd 100644 --- a/contracts/coordinator/tsconfig.json +++ b/contracts/coordinator/tsconfig.json @@ -2,10 +2,6 @@ "extends": "../../tsconfig", "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], - "files": [ - "generated-artifacts/Coordinator.json", - "generated-artifacts/CoordinatorRegistry.json", - "generated-artifacts/TestMixins.json" - ], + "files": ["generated-artifacts/Coordinator.json", "generated-artifacts/CoordinatorRegistry.json"], "exclude": ["./deploy/solc/solc_bin"] } From 55b87ae78d3143aa1b0e132a742c1568f4a1b920 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Fri, 22 Mar 2019 13:50:15 -0700 Subject: [PATCH 89/95] Make decodeOrdersFromFillData oublic and assertValidTransactionOrdersApproval internal --- .../src/MixinCoordinatorApprovalVerifier.sol | 106 ++++---- .../ICoordinatorApprovalVerifier.sol | 22 +- .../mixins/MCoordinatorApprovalVerifier.sol | 22 +- contracts/coordinator/test/mixins.ts | 231 ------------------ 4 files changed, 75 insertions(+), 306 deletions(-) diff --git a/contracts/coordinator/contracts/src/MixinCoordinatorApprovalVerifier.sol b/contracts/coordinator/contracts/src/MixinCoordinatorApprovalVerifier.sol index 408fa69b4e..bb3be65a73 100644 --- a/contracts/coordinator/contracts/src/MixinCoordinatorApprovalVerifier.sol +++ b/contracts/coordinator/contracts/src/MixinCoordinatorApprovalVerifier.sol @@ -58,7 +58,7 @@ contract MixinCoordinatorApprovalVerifier is view { // Get the orders from the the Exchange calldata in the 0x transaction - LibOrder.Order[] memory orders = decodeFillDataOrders(transaction.data); + LibOrder.Order[] memory orders = decodeOrdersFromFillData(transaction.data); // No approval is required for non-fill methods if (orders.length > 0) { @@ -74,6 +74,57 @@ contract MixinCoordinatorApprovalVerifier is } } + /// @dev Decodes the orders from Exchange calldata representing any fill method. + /// @param data Exchange calldata representing a fill method. + /// @return The orders from the Exchange calldata. + function decodeOrdersFromFillData(bytes memory data) + public + pure + returns (LibOrder.Order[] memory orders) + { + bytes4 selector = data.readBytes4(0); + if ( + selector == FILL_ORDER_SELECTOR || + selector == FILL_ORDER_NO_THROW_SELECTOR || + selector == FILL_OR_KILL_ORDER_SELECTOR + ) { + // Decode single order + (LibOrder.Order memory order) = abi.decode( + data.slice(4, data.length), + (LibOrder.Order) + ); + orders = new LibOrder.Order[](1); + orders[0] = order; + } else if ( + selector == BATCH_FILL_ORDERS_SELECTOR || + selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR || + selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR || + selector == MARKET_BUY_ORDERS_SELECTOR || + selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR || + selector == MARKET_SELL_ORDERS_SELECTOR || + selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR + ) { + // Decode all orders + // solhint-disable indent + (orders) = abi.decode( + data.slice(4, data.length), + (LibOrder.Order[]) + ); + } else if (selector == MATCH_ORDERS_SELECTOR) { + // Decode left and right orders + (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode( + data.slice(4, data.length), + (LibOrder.Order, LibOrder.Order) + ); + + // Create array of orders + orders = new LibOrder.Order[](2); + orders[0] = leftOrder; + orders[1] = rightOrder; + } + return orders; + } + /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction. /// @param transaction 0x transaction containing salt, signerAddress, and data. /// @param orders Array of order structs containing order specifications. @@ -89,7 +140,7 @@ contract MixinCoordinatorApprovalVerifier is uint256[] memory approvalExpirationTimeSeconds, bytes[] memory approvalSignatures ) - public + internal view { // Verify that Ethereum tx signer is the same as the approved txOrigin @@ -149,55 +200,4 @@ contract MixinCoordinatorApprovalVerifier is ); } } - - /// @dev Decodes the orders from Exchange calldata representing any fill method. - /// @param data Exchange calldata representing a fill method. - /// @return The orders from the Exchange calldata. - function decodeFillDataOrders(bytes memory data) - internal - pure - returns (LibOrder.Order[] memory orders) - { - bytes4 selector = data.readBytes4(0); - if ( - selector == FILL_ORDER_SELECTOR || - selector == FILL_ORDER_NO_THROW_SELECTOR || - selector == FILL_OR_KILL_ORDER_SELECTOR - ) { - // Decode single order - (LibOrder.Order memory order) = abi.decode( - data.slice(4, data.length), - (LibOrder.Order) - ); - orders = new LibOrder.Order[](1); - orders[0] = order; - } else if ( - selector == BATCH_FILL_ORDERS_SELECTOR || - selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR || - selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR || - selector == MARKET_BUY_ORDERS_SELECTOR || - selector == MARKET_BUY_ORDERS_NO_THROW_SELECTOR || - selector == MARKET_SELL_ORDERS_SELECTOR || - selector == MARKET_SELL_ORDERS_NO_THROW_SELECTOR - ) { - // Decode all orders - // solhint-disable indent - (orders) = abi.decode( - data.slice(4, data.length), - (LibOrder.Order[]) - ); - } else if (selector == MATCH_ORDERS_SELECTOR) { - // Decode left and right orders - (LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode( - data.slice(4, data.length), - (LibOrder.Order, LibOrder.Order) - ); - - // Create array of orders - orders = new LibOrder.Order[](2); - orders[0] = leftOrder; - orders[1] = rightOrder; - } - return orders; - } } diff --git a/contracts/coordinator/contracts/src/interfaces/ICoordinatorApprovalVerifier.sol b/contracts/coordinator/contracts/src/interfaces/ICoordinatorApprovalVerifier.sol index c603e7a4fa..c0f8ccf4e0 100644 --- a/contracts/coordinator/contracts/src/interfaces/ICoordinatorApprovalVerifier.sol +++ b/contracts/coordinator/contracts/src/interfaces/ICoordinatorApprovalVerifier.sol @@ -42,21 +42,11 @@ contract ICoordinatorApprovalVerifier { public view; - /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction. - /// @param transaction 0x transaction containing salt, signerAddress, and data. - /// @param orders Array of order structs containing order specifications. - /// @param txOrigin Required signer of Ethereum transaction calling this function. - /// @param transactionSignature Proof that the transaction has been signed by the signer. - /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires. - /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order. - function assertValidTransactionOrdersApproval( - LibZeroExTransaction.ZeroExTransaction memory transaction, - LibOrder.Order[] memory orders, - address txOrigin, - bytes memory transactionSignature, - uint256[] memory approvalExpirationTimeSeconds, - bytes[] memory approvalSignatures - ) + /// @dev Decodes the orders from Exchange calldata representing any fill method. + /// @param data Exchange calldata representing a fill method. + /// @return The orders from the Exchange calldata. + function decodeOrdersFromFillData(bytes memory data) public - view; + pure + returns (LibOrder.Order[] memory orders); } diff --git a/contracts/coordinator/contracts/src/mixins/MCoordinatorApprovalVerifier.sol b/contracts/coordinator/contracts/src/mixins/MCoordinatorApprovalVerifier.sol index d8e217279b..302350c357 100644 --- a/contracts/coordinator/contracts/src/mixins/MCoordinatorApprovalVerifier.sol +++ b/contracts/coordinator/contracts/src/mixins/MCoordinatorApprovalVerifier.sol @@ -26,11 +26,21 @@ import "../interfaces/ICoordinatorApprovalVerifier.sol"; contract MCoordinatorApprovalVerifier is ICoordinatorApprovalVerifier { - /// @dev Decodes the orders from Exchange calldata representing any fill method. - /// @param data Exchange calldata representing a fill method. - /// @return The orders from the Exchange calldata. - function decodeFillDataOrders(bytes memory data) + /// @dev Validates that the feeRecipients of a batch of order have approved a 0x transaction. + /// @param transaction 0x transaction containing salt, signerAddress, and data. + /// @param orders Array of order structs containing order specifications. + /// @param txOrigin Required signer of Ethereum transaction calling this function. + /// @param transactionSignature Proof that the transaction has been signed by the signer. + /// @param approvalExpirationTimeSeconds Array of expiration times in seconds for which each corresponding approval signature expires. + /// @param approvalSignatures Array of signatures that correspond to the feeRecipients of each order. + function assertValidTransactionOrdersApproval( + LibZeroExTransaction.ZeroExTransaction memory transaction, + LibOrder.Order[] memory orders, + address txOrigin, + bytes memory transactionSignature, + uint256[] memory approvalExpirationTimeSeconds, + bytes[] memory approvalSignatures + ) internal - pure - returns (LibOrder.Order[] memory orders); + view; } diff --git a/contracts/coordinator/test/mixins.ts b/contracts/coordinator/test/mixins.ts index 2e79423e1b..1fe3c89955 100644 --- a/contracts/coordinator/test/mixins.ts +++ b/contracts/coordinator/test/mixins.ts @@ -148,15 +148,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval.signature], - { from: transactionSignerAddress }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, transactionSignerAddress, @@ -181,15 +172,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval.signature], - { from: transactionSignerAddress }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, transactionSignerAddress, @@ -203,15 +185,6 @@ describe('Mixins tests', () => { const orders = [defaultOrder]; const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders); const transaction = transactionFactory.newSignedTransaction(data); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - approvalSignerAddress1, - transaction.signature, - [], - [], - { from: approvalSignerAddress1 }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, approvalSignerAddress1, @@ -234,15 +207,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - approvalSignerAddress1, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval.signature], - { from: approvalSignerAddress1 }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, approvalSignerAddress1, @@ -256,15 +220,6 @@ describe('Mixins tests', () => { const orders = [defaultOrder]; const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders); const transaction = transactionFactory.newSignedTransaction(data); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - approvalSignerAddress1, - transaction.signature, - [], - [], - { from: approvalSignerAddress1 }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, approvalSignerAddress1, @@ -288,18 +243,6 @@ describe('Mixins tests', () => { approvalExpirationTimeSeconds, ); const signature = `${approval.signature.slice(0, 4)}FFFFFFFF${approval.signature.slice(12)}`; - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [signature], - { from: transactionSignerAddress }, - ), - RevertReason.InvalidApprovalSignature, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, @@ -323,18 +266,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval.signature], - { from: transactionSignerAddress }, - ), - RevertReason.ApprovalExpired, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, @@ -358,18 +289,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval.signature], - { from: approvalSignerAddress2 }, - ), - RevertReason.InvalidOrigin, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, @@ -401,15 +320,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval.signature], - { from: transactionSignerAddress }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, transactionSignerAddress, @@ -433,15 +343,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval.signature], - { from: transactionSignerAddress }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, transactionSignerAddress, @@ -458,15 +359,6 @@ describe('Mixins tests', () => { })); const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders); const transaction = transactionFactory.newSignedTransaction(data); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [], - [], - { from: transactionSignerAddress }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, transactionSignerAddress, @@ -487,15 +379,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval.signature], - { from: transactionSignerAddress }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, transactionSignerAddress, @@ -521,15 +404,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds, approvalExpirationTimeSeconds], - [approval1.signature, approval2.signature], - { from: transactionSignerAddress }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, transactionSignerAddress, @@ -543,15 +417,6 @@ describe('Mixins tests', () => { const orders = [defaultOrder, defaultOrder]; const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders); const transaction = transactionFactory.newSignedTransaction(data); - await mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - approvalSignerAddress1, - transaction.signature, - [], - [], - { from: approvalSignerAddress1 }, - ); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, approvalSignerAddress1, @@ -572,18 +437,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval2.signature], - { from: approvalSignerAddress1 }, - ), - RevertReason.InvalidOrigin, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, @@ -600,18 +453,6 @@ describe('Mixins tests', () => { const orders = [defaultOrder, defaultOrder]; const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders); const transaction = transactionFactory.newSignedTransaction(data); - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [], - [], - { from: transactionSignerAddress }, - ), - RevertReason.InvalidApprovalSignature, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, @@ -636,18 +477,6 @@ describe('Mixins tests', () => { approvalExpirationTimeSeconds, ); const signature = `${approval.signature.slice(0, 4)}FFFFFFFF${approval.signature.slice(12)}`; - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [signature], - { from: transactionSignerAddress }, - ), - RevertReason.InvalidApprovalSignature, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, @@ -677,18 +506,6 @@ describe('Mixins tests', () => { approvalExpirationTimeSeconds, ); const approvalSignature2 = `${approval2.signature.slice(0, 4)}FFFFFFFF${approval2.signature.slice(12)}`; - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds, approvalExpirationTimeSeconds], - [approval1.signature, approvalSignature2], - { from: transactionSignerAddress }, - ), - RevertReason.InvalidApprovalSignature, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, @@ -713,18 +530,6 @@ describe('Mixins tests', () => { approvalExpirationTimeSeconds, ); const approvalSignature2 = `${approval2.signature.slice(0, 4)}FFFFFFFF${approval2.signature.slice(12)}`; - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - approvalSignerAddress1, - transaction.signature, - [approvalExpirationTimeSeconds], - [approvalSignature2], - { from: approvalSignerAddress1 }, - ), - RevertReason.InvalidApprovalSignature, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, @@ -754,18 +559,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds2, ); - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds1, approvalExpirationTimeSeconds2], - [approval1.signature, approval2.signature], - { from: transactionSignerAddress }, - ), - RevertReason.ApprovalExpired, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, @@ -789,18 +582,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - approvalSignerAddress1, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval2.signature], - { from: approvalSignerAddress1 }, - ), - RevertReason.ApprovalExpired, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, @@ -824,18 +605,6 @@ describe('Mixins tests', () => { transactionSignerAddress, approvalExpirationTimeSeconds, ); - expectContractCallFailedAsync( - mixins.assertValidTransactionOrdersApproval.callAsync( - transaction, - orders, - transactionSignerAddress, - transaction.signature, - [approvalExpirationTimeSeconds], - [approval1.signature], - { from: approvalSignerAddress2 }, - ), - RevertReason.InvalidOrigin, - ); expectContractCallFailedAsync( mixins.assertValidCoordinatorApprovals.callAsync( transaction, From 1c18838cd88b45049d256953db97e9ae476d2e93 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Sun, 24 Mar 2019 15:25:41 -0700 Subject: [PATCH 90/95] Fix typos and add tests for decodeOrdersFromFillData --- .../src/libs/LibCoordinatorApproval.sol | 7 +- .../src/libs/LibZeroExTransaction.sol | 2 +- contracts/coordinator/test/coordinator.ts | 2 +- contracts/coordinator/test/mixins.ts | 68 ++++++++++++++++++- contracts/coordinator/test/utils/constants.ts | 2 +- .../test/utils/exchange_data_encoder.ts | 2 +- 6 files changed, 74 insertions(+), 9 deletions(-) diff --git a/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol b/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol index eee99537c6..15bd656176 100644 --- a/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol +++ b/contracts/coordinator/contracts/src/libs/LibCoordinatorApproval.sol @@ -38,9 +38,9 @@ contract LibCoordinatorApproval is struct CoordinatorApproval { address txOrigin; // Required signer of Ethereum transaction that is submitting approval. - bytes32 transactionHash; // EIP712 hash of the transaction, using the domain separator of this contract. + bytes32 transactionHash; // EIP712 hash of the transaction. bytes transactionSignature; // Signature of the 0x transaction. - uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the signature expires. + uint256 approvalExpirationTimeSeconds; // Timestamp in seconds for which the approval expires. } /// @dev Calculated the EIP712 hash of the Coordinator approval mesasage using the domain separator of this contract. @@ -72,9 +72,10 @@ contract LibCoordinatorApproval is // Assembly for more efficiently computing: // keccak256(abi.encodePacked( // EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH, + // approval.txOrigin, // approval.transactionHash, // keccak256(approval.transactionSignature) - // approval.expiration, + // approval.approvalExpirationTimeSeconds, // )); assembly { diff --git a/contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol b/contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol index 741cf3c43d..a5e16f9694 100644 --- a/contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol +++ b/contracts/coordinator/contracts/src/libs/LibZeroExTransaction.sol @@ -41,7 +41,7 @@ contract LibZeroExTransaction is bytes data; // AbiV2 encoded calldata. } - /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of this contract. + /// @dev Calculates the EIP712 hash of a 0x transaction using the domain separator of the Exchange contract. /// @param transaction 0x transaction containing salt, signerAddress, and data. /// @return EIP712 hash of the transaction with the domain separator of this contract. function getTransactionHash(ZeroExTransaction memory transaction) diff --git a/contracts/coordinator/test/coordinator.ts b/contracts/coordinator/test/coordinator.ts index 6215213652..912d48d922 100644 --- a/contracts/coordinator/test/coordinator.ts +++ b/contracts/coordinator/test/coordinator.ts @@ -435,7 +435,7 @@ describe('Coordinator tests', () => { describe('cancels', () => { it('cancelOrder call should be successful without an approval', async () => { const orders = [await orderFactory.newSignedOrderAsync()]; - const data = exchangeDataEncoder.encodeOrdersToExchangeData(constants.CANCEL_ORDERS, orders); + const data = exchangeDataEncoder.encodeOrdersToExchangeData(constants.CANCEL_ORDER, orders); const transaction = makerTransactionFactory.newSignedTransaction(data); const transactionReceipt = await web3Wrapper.awaitTransactionSuccessAsync( await coordinatorContract.executeTransaction.sendTransactionAsync( diff --git a/contracts/coordinator/test/mixins.ts b/contracts/coordinator/test/mixins.ts index 1fe3c89955..a500333048 100644 --- a/contracts/coordinator/test/mixins.ts +++ b/contracts/coordinator/test/mixins.ts @@ -135,6 +135,70 @@ describe('Mixins tests', () => { }); }); + describe('decodeOrdersFromFillData', () => { + for (const fnName of constants.SINGLE_FILL_FN_NAMES) { + it(`should correctly decode the orders for ${fnName} data`, async () => { + const orders = [defaultOrder]; + const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders); + const decodedOrders = await mixins.decodeOrdersFromFillData.callAsync(data); + const decodedSignedOrders = decodedOrders.map(order => ({ + ...order, + exchangeAddress: devConstants.NULL_ADDRESS, + signature: devConstants.NULL_BYTES, + })); + expect(orders).to.deep.eq(decodedSignedOrders); + }); + } + for (const fnName of constants.BATCH_FILL_FN_NAMES) { + it(`should correctly decode the orders for ${fnName} data`, async () => { + const orders = [defaultOrder, defaultOrder]; + const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders); + const decodedOrders = await mixins.decodeOrdersFromFillData.callAsync(data); + const decodedSignedOrders = decodedOrders.map(order => ({ + ...order, + exchangeAddress: devConstants.NULL_ADDRESS, + signature: devConstants.NULL_BYTES, + })); + expect(orders).to.deep.eq(decodedSignedOrders); + }); + } + for (const fnName of constants.MARKET_FILL_FN_NAMES) { + it(`should correctly decode the orders for ${fnName} data`, async () => { + const orders = [defaultOrder, defaultOrder]; + const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders); + const decodedOrders = await mixins.decodeOrdersFromFillData.callAsync(data); + const decodedSignedOrders = decodedOrders.map(order => ({ + ...order, + exchangeAddress: devConstants.NULL_ADDRESS, + signature: devConstants.NULL_BYTES, + })); + expect(orders).to.deep.eq(decodedSignedOrders); + }); + } + for (const fnName of [constants.CANCEL_ORDER, constants.BATCH_CANCEL_ORDERS, constants.CANCEL_ORDERS_UP_TO]) { + it(`should correctly decode the orders for ${fnName} data`, async () => { + const orders = [defaultOrder, defaultOrder]; + const data = exchangeDataEncoder.encodeOrdersToExchangeData(fnName, orders); + const decodedOrders = await mixins.decodeOrdersFromFillData.callAsync(data); + const emptyArray: any[] = []; + expect(emptyArray).to.deep.eq(decodedOrders); + }); + } + it('should decode an empty array for invalid data', async () => { + const data = '0x0123456789'; + const decodedOrders = await mixins.decodeOrdersFromFillData.callAsync(data); + const emptyArray: any[] = []; + expect(emptyArray).to.deep.eq(decodedOrders); + }); + it('should revert if data is less than 4 bytes long', async () => { + const data = '0x010203'; + await expectContractCallFailedAsync( + mixins.decodeOrdersFromFillData.callAsync(data), + RevertReason.LibBytesGreaterOrEqualTo4LengthRequired, + ); + }); + }); + describe('Single order approvals', () => { for (const fnName of constants.SINGLE_FILL_FN_NAMES) { it(`Should be successful: function=${fnName}, caller=tx_signer, senderAddress=[verifier], approval_sig=[approver1], expiration=[valid]`, async () => { @@ -620,9 +684,9 @@ describe('Mixins tests', () => { } }); describe('cancels', () => { - it('should allow the tx signer to call `cancelOrders` without approval', async () => { + it('should allow the tx signer to call `cancelOrder` without approval', async () => { const orders = [defaultOrder]; - const data = exchangeDataEncoder.encodeOrdersToExchangeData(constants.CANCEL_ORDERS, orders); + const data = exchangeDataEncoder.encodeOrdersToExchangeData(constants.CANCEL_ORDER, orders); const transaction = transactionFactory.newSignedTransaction(data); await mixins.assertValidCoordinatorApprovals.callAsync( transaction, diff --git a/contracts/coordinator/test/utils/constants.ts b/contracts/coordinator/test/utils/constants.ts index e83a636418..fd52a86b64 100644 --- a/contracts/coordinator/test/utils/constants.ts +++ b/contracts/coordinator/test/utils/constants.ts @@ -5,7 +5,7 @@ export const constants = { BATCH_FILL_FN_NAMES: ['batchFillOrders', 'batchFillOrKillOrders', 'batchFillOrdersNoThrow'], MARKET_FILL_FN_NAMES: ['marketBuyOrders', 'marketBuyOrdersNoThrow', 'marketSellOrders', 'marketSellOrdersNoThrow'], MATCH_ORDERS: 'matchOrders', - CANCEL_ORDERS: 'cancelOrders', + CANCEL_ORDER: 'cancelOrder', BATCH_CANCEL_ORDERS: 'batchCancelOrders', CANCEL_ORDERS_UP_TO: 'cancelOrdersUpTo', TIME_BUFFER: new BigNumber(1000), diff --git a/contracts/coordinator/test/utils/exchange_data_encoder.ts b/contracts/coordinator/test/utils/exchange_data_encoder.ts index 784c009671..8622331b6e 100644 --- a/contracts/coordinator/test/utils/exchange_data_encoder.ts +++ b/contracts/coordinator/test/utils/exchange_data_encoder.ts @@ -37,7 +37,7 @@ export const exchangeDataEncoder = { orders[0].signature, orders[1].signature, ); - } else if (fnName === constants.CANCEL_ORDERS) { + } else if (fnName === constants.CANCEL_ORDER) { data = exchangeInstance.cancelOrder.getABIEncodedTransactionData(orders[0]); } else if (fnName === constants.BATCH_CANCEL_ORDERS) { data = exchangeInstance.batchCancelOrders.getABIEncodedTransactionData(orders); From 17ff2627292724058178dad1eda3efd2ef162a61 Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Sun, 24 Mar 2019 16:47:14 -0700 Subject: [PATCH 91/95] Update CHANGELOG --- contracts/coordinator/CHANGELOG.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/contracts/coordinator/CHANGELOG.json b/contracts/coordinator/CHANGELOG.json index 0ad71372c0..0efc92c116 100644 --- a/contracts/coordinator/CHANGELOG.json +++ b/contracts/coordinator/CHANGELOG.json @@ -1,4 +1,17 @@ [ + { + "version": "2.0.0", + "changes": [ + { + "note": "Make `decodeOrdersFromFillData`, `getCoordinatorApprovalHash`, and `getTransactionHash` public", + "pr": 1729 + }, + { + "note": "Make `assertValidTransactionOrdersApproval` internal", + "pr": 1729 + } + ] + }, { "version": "1.1.0", "changes": [ From e0437353625fb373d3844cdd57c1f5e45f8536c2 Mon Sep 17 00:00:00 2001 From: Michael Huang Date: Mon, 25 Mar 2019 14:18:58 -0500 Subject: [PATCH 92/95] Fix regex validation on numeric inputs (#1731) * Fix regex validation on numeric inputs --- python-packages/sra_client/CHANGELOG.json | 11 +++++++++ .../sra_client/models/order_schema.py | 24 +++++++++---------- 2 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 python-packages/sra_client/CHANGELOG.json diff --git a/python-packages/sra_client/CHANGELOG.json b/python-packages/sra_client/CHANGELOG.json new file mode 100644 index 0000000000..7d6d2c4bb0 --- /dev/null +++ b/python-packages/sra_client/CHANGELOG.json @@ -0,0 +1,11 @@ +[ + { + "timestamp": 1553491629, + "version": "1.0.1", + "changes": [ + { + "note": "Fix regex validation on numeric values" + } + ] + } +] diff --git a/python-packages/sra_client/sra_client/models/order_schema.py b/python-packages/sra_client/sra_client/models/order_schema.py index 48fef39d84..1eeff510d1 100644 --- a/python-packages/sra_client/sra_client/models/order_schema.py +++ b/python-packages/sra_client/sra_client/models/order_schema.py @@ -185,10 +185,10 @@ class OrderSchema(object): "Invalid value for `maker_fee`, must not be `None`" ) # noqa: E501 if maker_fee is not None and not re.search( - r"^\\d+$", maker_fee + r"^\d+$", maker_fee ): # noqa: E501 raise ValueError( - r"Invalid value for `maker_fee`, must be a follow pattern or equal to `/^\\d+$/`" + r"Invalid value for `maker_fee`, must be a follow pattern or equal to `/^\d+$/`" ) # noqa: E501 self._maker_fee = maker_fee @@ -216,10 +216,10 @@ class OrderSchema(object): "Invalid value for `taker_fee`, must not be `None`" ) # noqa: E501 if taker_fee is not None and not re.search( - r"^\\d+$", taker_fee + r"^\d+$", taker_fee ): # noqa: E501 raise ValueError( - r"Invalid value for `taker_fee`, must be a follow pattern or equal to `/^\\d+$/`" + r"Invalid value for `taker_fee`, must be a follow pattern or equal to `/^\d+$/`" ) # noqa: E501 self._taker_fee = taker_fee @@ -278,10 +278,10 @@ class OrderSchema(object): "Invalid value for `maker_asset_amount`, must not be `None`" ) # noqa: E501 if maker_asset_amount is not None and not re.search( - r"^\\d+$", maker_asset_amount + r"^\d+$", maker_asset_amount ): # noqa: E501 raise ValueError( - r"Invalid value for `maker_asset_amount`, must be a follow pattern or equal to `/^\\d+$/`" + r"Invalid value for `maker_asset_amount`, must be a follow pattern or equal to `/^\d+$/`" ) # noqa: E501 self._maker_asset_amount = maker_asset_amount @@ -309,10 +309,10 @@ class OrderSchema(object): "Invalid value for `taker_asset_amount`, must not be `None`" ) # noqa: E501 if taker_asset_amount is not None and not re.search( - r"^\\d+$", taker_asset_amount + r"^\d+$", taker_asset_amount ): # noqa: E501 raise ValueError( - r"Invalid value for `taker_asset_amount`, must be a follow pattern or equal to `/^\\d+$/`" + r"Invalid value for `taker_asset_amount`, must be a follow pattern or equal to `/^\d+$/`" ) # noqa: E501 self._taker_asset_amount = taker_asset_amount @@ -401,9 +401,9 @@ class OrderSchema(object): raise ValueError( "Invalid value for `salt`, must not be `None`" ) # noqa: E501 - if salt is not None and not re.search(r"^\\d+$", salt): # noqa: E501 + if salt is not None and not re.search(r"^\d+$", salt): # noqa: E501 raise ValueError( - r"Invalid value for `salt`, must be a follow pattern or equal to `/^\\d+$/`" + r"Invalid value for `salt`, must be a follow pattern or equal to `/^\d+$/`" ) # noqa: E501 self._salt = salt @@ -493,10 +493,10 @@ class OrderSchema(object): "Invalid value for `expiration_time_seconds`, must not be `None`" ) # noqa: E501 if expiration_time_seconds is not None and not re.search( - r"^\\d+$", expiration_time_seconds + r"^\d+$", expiration_time_seconds ): # noqa: E501 raise ValueError( - r"Invalid value for `expiration_time_seconds`, must be a follow pattern or equal to `/^\\d+$/`" + r"Invalid value for `expiration_time_seconds`, must be a follow pattern or equal to `/^\d+$/`" ) # noqa: E501 self._expiration_time_seconds = expiration_time_seconds From a256494ec8caa1a0b89cdf16e10296804ce83f23 Mon Sep 17 00:00:00 2001 From: Michael Huang Date: Mon, 25 Mar 2019 18:25:41 -0500 Subject: [PATCH 93/95] Python contract wrappers (#1721) --- python-packages/cmd_pkgs_in_dep_order.py | 1 + .../contract_wrappers/.discharge.json | 13 + python-packages/contract_wrappers/.pylintrc | 4 + python-packages/contract_wrappers/README.md | 45 +++ python-packages/contract_wrappers/setup.py | 226 +++++++++++ python-packages/contract_wrappers/src/conf.py | 56 +++ .../contract_wrappers/src/doc_static/.gitkeep | 0 .../src/doc_templates/.gitkeep | 0 .../contract_wrappers/src/index.rst | 40 ++ .../contract_wrappers/src/zero_ex/__init__.py | 2 + .../src/zero_ex/contract_wrappers/__init__.py | 352 ++++++++++++++++++ .../_base_contract_wrapper.py | 129 +++++++ .../contract_wrappers/erc20_wrapper.py | 224 +++++++++++ .../contract_wrappers/exchange_wrapper.py | 324 ++++++++++++++++ .../src/zero_ex/contract_wrappers/py.typed | 0 .../zero_ex/contract_wrappers/tx_params.py | 39 ++ .../stubs/distutils/__init__.pyi | 0 .../stubs/distutils/command/__init__.pyi | 0 .../stubs/distutils/command/clean.pyi | 7 + .../stubs/eth_account/__init__.pyi | 1 + .../stubs/eth_account/local.pyi | 3 + .../stubs/eth_utils/__init__.pyi | 3 + .../stubs/hexbytes/__init__.pyi | 1 + .../stubs/pytest/__init__.pyi | 9 + .../stubs/setuptools/__init__.pyi | 8 + .../stubs/setuptools/command/__init__.pyi | 0 .../stubs/setuptools/command/test.pyi | 3 + .../contract_wrappers/stubs/sha3/__init__.pyi | 0 .../contract_wrappers/stubs/web3/__init__.pyi | 56 +++ .../stubs/web3/datastructures.pyi | 5 + .../stubs/web3/exceptions.pyi | 2 + .../stubs/web3/providers/__init__.pyi | 0 .../stubs/web3/providers/base.pyi | 2 + .../stubs/web3/utils/__init__.pyi | 0 .../stubs/web3/utils/datatypes.pyi | 3 + .../contract_wrappers/test/__init__.py | 1 + .../contract_wrappers/test/conftest.py | 79 ++++ .../test/test_base_contract_wrapper.py | 47 +++ .../test/test_erc20_wrapper.py | 80 ++++ .../test/test_exchange_wrapper.py | 124 ++++++ python-packages/contract_wrappers/tox.ini | 25 ++ 41 files changed, 1914 insertions(+) create mode 100644 python-packages/contract_wrappers/.discharge.json create mode 100644 python-packages/contract_wrappers/.pylintrc create mode 100644 python-packages/contract_wrappers/README.md create mode 100755 python-packages/contract_wrappers/setup.py create mode 100644 python-packages/contract_wrappers/src/conf.py create mode 100644 python-packages/contract_wrappers/src/doc_static/.gitkeep create mode 100644 python-packages/contract_wrappers/src/doc_templates/.gitkeep create mode 100644 python-packages/contract_wrappers/src/index.rst create mode 100644 python-packages/contract_wrappers/src/zero_ex/__init__.py create mode 100644 python-packages/contract_wrappers/src/zero_ex/contract_wrappers/__init__.py create mode 100644 python-packages/contract_wrappers/src/zero_ex/contract_wrappers/_base_contract_wrapper.py create mode 100644 python-packages/contract_wrappers/src/zero_ex/contract_wrappers/erc20_wrapper.py create mode 100644 python-packages/contract_wrappers/src/zero_ex/contract_wrappers/exchange_wrapper.py create mode 100644 python-packages/contract_wrappers/src/zero_ex/contract_wrappers/py.typed create mode 100644 python-packages/contract_wrappers/src/zero_ex/contract_wrappers/tx_params.py create mode 100644 python-packages/contract_wrappers/stubs/distutils/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/distutils/command/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/distutils/command/clean.pyi create mode 100644 python-packages/contract_wrappers/stubs/eth_account/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/eth_account/local.pyi create mode 100644 python-packages/contract_wrappers/stubs/eth_utils/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/hexbytes/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/pytest/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/setuptools/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/setuptools/command/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/setuptools/command/test.pyi create mode 100644 python-packages/contract_wrappers/stubs/sha3/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/web3/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/web3/datastructures.pyi create mode 100644 python-packages/contract_wrappers/stubs/web3/exceptions.pyi create mode 100644 python-packages/contract_wrappers/stubs/web3/providers/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/web3/providers/base.pyi create mode 100644 python-packages/contract_wrappers/stubs/web3/utils/__init__.pyi create mode 100644 python-packages/contract_wrappers/stubs/web3/utils/datatypes.pyi create mode 100644 python-packages/contract_wrappers/test/__init__.py create mode 100644 python-packages/contract_wrappers/test/conftest.py create mode 100644 python-packages/contract_wrappers/test/test_base_contract_wrapper.py create mode 100644 python-packages/contract_wrappers/test/test_erc20_wrapper.py create mode 100644 python-packages/contract_wrappers/test/test_exchange_wrapper.py create mode 100644 python-packages/contract_wrappers/tox.ini diff --git a/python-packages/cmd_pkgs_in_dep_order.py b/python-packages/cmd_pkgs_in_dep_order.py index a56e95bac3..0a989fb1c7 100755 --- a/python-packages/cmd_pkgs_in_dep_order.py +++ b/python-packages/cmd_pkgs_in_dep_order.py @@ -12,6 +12,7 @@ PACKAGE_DEPENDENCY_LIST = [ # independent first) in order for them to resolve properly. "contract_addresses", "contract_artifacts", + "contract_wrappers", "json_schemas", "sra_client", "order_utils", diff --git a/python-packages/contract_wrappers/.discharge.json b/python-packages/contract_wrappers/.discharge.json new file mode 100644 index 0000000000..62c1e576ae --- /dev/null +++ b/python-packages/contract_wrappers/.discharge.json @@ -0,0 +1,13 @@ +{ + "domain": "0x-contract-wrappers-py", + "build_command": "python setup.py build_sphinx", + "upload_directory": "build/docs/html", + "index_key": "index.html", + "error_key": "index.html", + "trailing_slashes": true, + "cache": 3600, + "aws_profile": "default", + "aws_region": "us-east-1", + "cdn": false, + "dns_configured": true +} diff --git a/python-packages/contract_wrappers/.pylintrc b/python-packages/contract_wrappers/.pylintrc new file mode 100644 index 0000000000..85011fdcfe --- /dev/null +++ b/python-packages/contract_wrappers/.pylintrc @@ -0,0 +1,4 @@ +[MESSAGES CONTROL] +disable=C0330,line-too-long,fixme,too-few-public-methods,too-many-ancestors,too-many-arguments +# C0330 is "bad hanging indent". we use indents per `black`. +min-similarity-lines=10 diff --git a/python-packages/contract_wrappers/README.md b/python-packages/contract_wrappers/README.md new file mode 100644 index 0000000000..cba99b9939 --- /dev/null +++ b/python-packages/contract_wrappers/README.md @@ -0,0 +1,45 @@ +## 0x-contract-wrappers + +0x contract wrappers for those developing on top of 0x protocol. + +Read the [documentation](http://0x-contract-wrappers-py.s3-website-us-east-1.amazonaws.com/) + +## Installing + +```bash +pip install 0x-contract-wrappers +``` + +## Contributing + +We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository. + +Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started. + +### Install Code and Dependencies + +Ensure that you have installed Python >=3.6 and Docker. Then: + +```bash +pip install -e .[dev] +``` + +### Test + +Tests depend on a running ganache instance and with the 0x contracts deployed in it. For convenience, a docker container is provided that has ganache-cli and a snapshot containing the necessary contracts. A shortcut is provided to run that docker container: `./setup.py ganache`. With that running, the tests can be run with `./setup.py test`. + +### Clean + +`./setup.py clean --all` + +### Lint + +`./setup.py lint` + +### Build Documentation + +`./setup.py build_sphinx` + +### More + +See `./setup.py --help-commands` for more info. diff --git a/python-packages/contract_wrappers/setup.py b/python-packages/contract_wrappers/setup.py new file mode 100755 index 0000000000..55551a7c87 --- /dev/null +++ b/python-packages/contract_wrappers/setup.py @@ -0,0 +1,226 @@ +#!/usr/bin/env python + +"""setuptools module for contract_wrappers package.""" + +import subprocess # nosec +from shutil import rmtree +from os import environ, path +from pathlib import Path +from sys import argv + +from distutils.command.clean import clean +import distutils.command.build_py +from setuptools import find_packages, setup +from setuptools.command.test import test as TestCommand + + +class TestCommandExtension(TestCommand): + """Run pytest tests.""" + + def run_tests(self): + """Invoke pytest.""" + import pytest + + exit(pytest.main(["--doctest-modules"])) + + +class LintCommand(distutils.command.build_py.build_py): + """Custom setuptools command class for running linters.""" + + description = "Run linters" + + def run(self): + """Run linter shell commands.""" + lint_commands = [ + # formatter: + "black --line-length 79 --check --diff src test setup.py".split(), + # style guide checker (formerly pep8): + "pycodestyle src test setup.py".split(), + # docstring style checker: + "pydocstyle src test setup.py".split(), + # static type checker: + "mypy src test setup.py".split(), + # security issue checker: + "bandit -r src ./setup.py".split(), + # general linter: + "pylint src test setup.py".split(), + # pylint takes relatively long to run, so it runs last, to enable + # fast failures. + ] + + # tell mypy where to find interface stubs for 3rd party libs + environ["MYPYPATH"] = path.join( + path.dirname(path.realpath(argv[0])), "stubs" + ) + + # HACK(gene): until eth_utils fixes + # https://github.com/ethereum/eth-utils/issues/140 , we need to simply + # create an empty file `py.typed` in the eth_abi package directory. + import eth_utils + + eth_utils_dir = path.dirname(path.realpath(eth_utils.__file__)) + Path(path.join(eth_utils_dir, "py.typed")).touch() + + for lint_command in lint_commands: + print( + "Running lint command `", " ".join(lint_command).strip(), "`" + ) + subprocess.check_call(lint_command) # nosec + + +class CleanCommandExtension(clean): + """Custom command to do custom cleanup.""" + + def run(self): + """Run the regular clean, followed by our custom commands.""" + super().run() + rmtree("dist", ignore_errors=True) + rmtree(".mypy_cache", ignore_errors=True) + rmtree(".tox", ignore_errors=True) + rmtree(".pytest_cache", ignore_errors=True) + rmtree("src/0x_contract_wrappers.egg-info", ignore_errors=True) + + +class TestPublishCommand(distutils.command.build_py.build_py): + """Custom command to publish to test.pypi.org.""" + + description = ( + "Publish dist/* to test.pypi.org. Run sdist & bdist_wheel first." + ) + + def run(self): + """Run twine to upload to test.pypi.org.""" + subprocess.check_call( # nosec + ( + "twine upload --repository-url https://test.pypi.org/legacy/" + + " --verbose dist/*" + ).split() + ) + + +class PublishCommand(distutils.command.build_py.build_py): + """Custom command to publish to pypi.org.""" + + description = "Publish dist/* to pypi.org. Run sdist & bdist_wheel first." + + def run(self): + """Run twine to upload to pypi.org.""" + subprocess.check_call("twine upload dist/*".split()) # nosec + + +class PublishDocsCommand(distutils.command.build_py.build_py): + """Custom command to publish docs to S3.""" + + description = ( + "Publish docs to " + + "http://0x-contract-wrappers-py.s3-website-us-east-1.amazonaws.com/" + ) + + def run(self): + """Run npm package `discharge` to build & upload docs.""" + subprocess.check_call("discharge deploy".split()) # nosec + + +class GanacheCommand(distutils.command.build_py.build_py): + """Custom command to publish to pypi.org.""" + + description = "Run ganache daemon to support tests." + + def run(self): + """Run ganache.""" + cmd_line = ( + "docker run -d -p 8545:8545 0xorg/ganache-cli:2.2.2" + ).split() + subprocess.call(cmd_line) # nosec + + +with open("README.md", "r") as file_handle: + README_MD = file_handle.read() + + +setup( + name="0x-contract-wrappers", + version="1.0.1", + description="Python wrappers for 0x smart contracts", + long_description=README_MD, + long_description_content_type="text/markdown", + url=( + "https://github.com/0xproject/0x-monorepo/tree/development" + + "/python-packages/contract_wrappers" + ), + author="F. Eugene Aumson", + author_email="feuGeneA@users.noreply.github.com", + cmdclass={ + "clean": CleanCommandExtension, + "lint": LintCommand, + "test": TestCommandExtension, + "test_publish": TestPublishCommand, + "publish": PublishCommand, + "publish_docs": PublishDocsCommand, + "ganache": GanacheCommand, + }, + install_requires=[ + "0x-contract-addresses", + "0x-contract-artifacts", + "0x-json-schemas", + "0x-order-utils", + "0x-web3", + "attrs", + "eth_utils", + "hypothesis>=3.31.2", # HACK! this is web3's dependency! + # above works around https://github.com/ethereum/web3.py/issues/1179 + "mypy_extensions", + ], + extras_require={ + "dev": [ + "bandit", + "black", + "coverage", + "coveralls", + "mypy", + "mypy_extensions", + "pycodestyle", + "pydocstyle", + "pylint", + "pytest", + "sphinx", + "sphinx-autodoc-typehints", + "tox", + "twine", + ] + }, + python_requires=">=3.6, <4", + package_data={"zero_ex.contract_wrappers": ["py.typed"]}, + package_dir={"": "src"}, + license="Apache 2.0", + keywords=( + "ethereum cryptocurrency 0x decentralized blockchain dex exchange" + ), + namespace_packages=["zero_ex"], + packages=find_packages("src"), + classifiers=[ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "Intended Audience :: Financial and Insurance Industry", + "License :: OSI Approved :: Apache Software License", + "Natural Language :: English", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Office/Business :: Financial", + "Topic :: Other/Nonlisted Topic", + "Topic :: Security :: Cryptography", + "Topic :: Software Development :: Libraries", + "Topic :: Utilities", + ], + zip_safe=False, # required per mypy + command_options={ + "build_sphinx": { + "source_dir": ("setup.py", "src"), + "build_dir": ("setup.py", "build/docs"), + } + }, +) diff --git a/python-packages/contract_wrappers/src/conf.py b/python-packages/contract_wrappers/src/conf.py new file mode 100644 index 0000000000..38c0695294 --- /dev/null +++ b/python-packages/contract_wrappers/src/conf.py @@ -0,0 +1,56 @@ +"""Configuration file for the Sphinx documentation builder.""" + +# Reference: http://www.sphinx-doc.org/en/master/config + +from typing import List + +import pkg_resources + + +# pylint: disable=invalid-name +# because these variables are not named in upper case, as globals should be. + +project = "0x-contract-wrappers" +# pylint: disable=redefined-builtin +copyright = "2019, ZeroEx, Intl." +author = "Michael Huang" +version = pkg_resources.get_distribution("0x-contract-wrappers").version +release = "" # The full version, including alpha/beta/rc tags + +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.doctest", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.viewcode", + "sphinx_autodoc_typehints", +] + +templates_path = ["doc_templates"] + +source_suffix = ".rst" +# eg: source_suffix = [".rst", ".md"] + +master_doc = "index" # The master toctree document. + +language = None + +exclude_patterns: List[str] = [] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = None + +html_theme = "alabaster" + +html_static_path = ["doc_static"] +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". + +# Output file base name for HTML help builder. +htmlhelp_basename = "contract_wrapperspydoc" + +# -- Extension configuration: + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {"https://docs.python.org/": None} diff --git a/python-packages/contract_wrappers/src/doc_static/.gitkeep b/python-packages/contract_wrappers/src/doc_static/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/contract_wrappers/src/doc_templates/.gitkeep b/python-packages/contract_wrappers/src/doc_templates/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/contract_wrappers/src/index.rst b/python-packages/contract_wrappers/src/index.rst new file mode 100644 index 0000000000..38750dbb12 --- /dev/null +++ b/python-packages/contract_wrappers/src/index.rst @@ -0,0 +1,40 @@ +Python zero_ex.contract_wrappers +================================================ + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + +.. automodule:: zero_ex.contract_wrappers + :members: + :inherited-members: + + +zero_ex.contract_wrappers.Exchange +---------------------------------- + +.. autoclass:: zero_ex.contract_wrappers.Exchange + :members: + :inherited-members: + + +zero_ex.contract_wrappers.ERC20Token +------------------------------------- + +.. autoclass:: zero_ex.contract_wrappers.ERC20Token + :members: + :inherited-members: + + +zero_ex.contract_wrappers.TxParams +---------------------------------- + +.. autoclass:: zero_ex.contract_wrappers.TxParams + :members: + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/python-packages/contract_wrappers/src/zero_ex/__init__.py b/python-packages/contract_wrappers/src/zero_ex/__init__.py new file mode 100644 index 0000000000..e90d833db6 --- /dev/null +++ b/python-packages/contract_wrappers/src/zero_ex/__init__.py @@ -0,0 +1,2 @@ +"""0x Python API.""" +__import__("pkg_resources").declare_namespace(__name__) diff --git a/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/__init__.py b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/__init__.py new file mode 100644 index 0000000000..b34f070df4 --- /dev/null +++ b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/__init__.py @@ -0,0 +1,352 @@ +"""Python wrappers for interacting with 0x smart contracts. + +The smart contract wrappers have simplified interfaces, +and perform client-side validation on transactions and throw +helpful error messages. + +Installing +========== +Install the 0x-contract-wrappers with pip: + +``pip install 0x-contract-wrappers`` + +Demo +==== +We will demonstrate some basic steps to help you get started trading on 0x. + +Importing packages +------------------ + +The first step to interact with the 0x smart contract is to import +the following relevant packages: + +>>> import random +>>> from eth_utils import to_checksum_address +>>> from zero_ex.contract_addresses import NETWORK_TO_ADDRESSES, NetworkId +>>> from zero_ex.contract_wrappers import ( +... ERC20Token, Exchange, TxParams +... ) +>>> from zero_ex.order_utils import( +... sign_hash, generate_order_hash_hex) + +Provider +-------- + +We need a web3 provider to allow us to talk to the blockchain. You can +read more about providers +`here `__. In our +case, we are using our local node (ganache), we will connect to our provider +at http://localhost:8545. + +>>> from web3 import HTTPProvider, Web3 +>>> provider = HTTPProvider("http://localhost:8545") +>>> # Create a web3 instance from the provider +>>> web3_instance = Web3(provider) + +Declaring Decimals and Addresses +--------------------------------- + +Since we are dealing with a few contracts, we will specify them now to +reduce the syntax load. Fortunately for us, the 0x python packages comes +with a couple of contract addresses that can be useful to have on hand. +One thing that is important to remember is that there are no decimals in +the Ethereum virtual machine (EVM), which means you always need to keep +track of how many "decimals" each token possesses. Since we will sell some +ZRX for some ETH and since they both have 18 decimals, we can use a shared +constant. Let us first get the addresses of the WETH and ZRX tokens on +the test network Ganache: + +>>> weth_address = NETWORK_TO_ADDRESSES[NetworkId.GANACHE].ether_token +>>> zrx_address = NETWORK_TO_ADDRESSES[NetworkId.GANACHE].zrx_token + +Approvals and WETH Balance +-------------------------- + +To trade on 0x, the participants (maker and taker) require a small +amount of initial set up. They need to approve the 0x smart contracts +to move funds on their behalf. In order to give 0x protocol smart contract +access to funds, we need to set allowances (you can read about allowances +`here `__). +In our demo the taker asset is WETH (or Wrapped ETH, you can read about WETH +`here `__)., +as ETH is not an ERC20 token it must first be converted into WETH to be +used by 0x. Concretely, "converting" ETH to WETH means that we will deposit +some ETH in a smart contract acting as a ERC20 wrapper. In exchange of +depositing ETH, we will get some ERC20 compliant tokens called WETH at a +1:1 conversion rate. For example, depositing 10 ETH will give us back 10 WETH +and we can revert the process at any time. + +In this demo, we will use test accounts on Ganache, which are accessible +through the Web3 instance. The first account will be the maker, and the second +account will be the taker. + +>>> import pprint +>>> # Instantiate an instance of the erc20_wrapper with the provider +>>> erc20_wrapper = ERC20Token(provider) +>>> # Get accounts from the web 3 instance +>>> accounts = web3_instance.eth.accounts +>>> pprint.pprint(accounts) +['0x5409ED021D9299bf6814279A6A1411A7e866A631', + '0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb', + '0xE36Ea790bc9d7AB70C55260C66D52b1eca985f84', + '0xE834EC434DABA538cd1b9Fe1582052B880BD7e63', + '0x78dc5D2D739606d31509C31d654056A45185ECb6', + '0xA8dDa8d7F5310E4A9E24F8eBA77E091Ac264f872', + '0x06cEf8E666768cC40Cc78CF93d9611019dDcB628', + '0x4404ac8bd8F9618D27Ad2f1485AA1B2cFD82482D', + '0x7457d5E02197480Db681D3fdF256c7acA21bDc12', + '0x91c987bf62D25945dB517BDAa840A6c661374402'] + +>>> maker = accounts[0] +>>> taker = accounts[1] + +Now we need to allow the 0x ERC20 Proxy to move WETH on behalf of our +maker and taker accounts. Let's let our maker and taker here approve +the 0x ERC20 Proxy an allowance of 100 WETH. + +>>> # Multiplying by 10 ** 18 to account for decimals +>>> ALLOWANCE = (100) * 10 ** 18 +>>> erc20_proxy = NETWORK_TO_ADDRESSES[NetworkId.GANACHE].erc20_proxy + +>>> # Set allowance to the erc20_proxy from maker account +>>> tx = erc20_wrapper.approve( +... weth_address, +... erc20_proxy, +... ALLOWANCE, +... tx_params=TxParams(from_=maker), +... ) +>>> # Check the allowance given to the 0x ERC20 Proxy +>>> maker_allowance = erc20_wrapper.allowance( +... weth_address, +... maker, +... erc20_proxy, +... ) +>>> (maker_allowance) // 10 ** 18 +100 + +>>> # Set allowance to the erc20_proxy from taker account +>>> tx = erc20_wrapper.approve( +... weth_address, +... erc20_proxy, +... ALLOWANCE, +... tx_params=TxParams(from_=taker), +... ) +>>> # Check the allowance given to the 0x ERC20 Proxy +>>> taker_allowance = erc20_wrapper.allowance( +... weth_address, +... taker, +... erc20_proxy, +... ) +>>> (taker_allowance) // 10 ** 18 +100 + +To give our accounts some initial WETH balance, we'll need +to *wrap* some ETH to get WETH. The WETH token contract +contains two extra methods, not included in the ERC20 token +standard, so we will grab the ABI for the WETH Token contract +and call the deposit method to wrap our ETH. Here is how we do so. + +>>> from zero_ex.contract_artifacts import abi_by_name +>>> # Converting 0.5 ETH to base unit wei +>>> deposit_amount = int(0.5 * 10 ** 18) + +>>> # Let's have our maker wrap 1 ETH for 1 WETH +>>> tx = erc20_wrapper.execute_method( +... address=weth_address, +... abi=abi_by_name("WETH9"), +... method="deposit", +... tx_params=TxParams(from_=maker, value=deposit_amount)) +>>> # Checking our maker's WETH balance +>>> maker_balance = erc20_wrapper.balance_of( +... token_address=weth_address, owner_address=maker) +>>> (maker_balance) / 10 ** 18 # doctest: +SKIP +0.5 + +>>> # Let's have our taker wrap 0.5 ETH as well +>>> tx = erc20_wrapper.execute_method( +... address=weth_address, +... abi=abi_by_name("WETH9"), +... method="deposit", +... tx_params=TxParams(from_=taker, value=deposit_amount)) +>>> # Checking our taker's WETH balance +>>> taker_balance = erc20_wrapper.balance_of( +... token_address=weth_address, owner_address=taker) +>>> (taker_balance) / 10 ** 18 # doctest: +SKIP +0.5 + +Now we can trade our WETH tokens on 0x! + +Signing an order +---------------- + +Here is an example of a JSON order previously generated by our maker +to sell 0.1 WETH. To confirm his intent to sell and recieve the described +token amounts in this order, our maker must first sign the order by +creating a signature with the given order data. + +>>> maker +'0x5409ED021D9299bf6814279A6A1411A7e866A631' + +>>> example_order = { +... 'makerAddress': '0x5409ed021d9299bf6814279a6a1411a7e866a631', +... 'takerAddress': '0x0000000000000000000000000000000000000000', +... 'senderAddress': '0x0000000000000000000000000000000000000000', +... 'exchangeAddress': '0x48bacb9266a570d521063ef5dd96e61686dbe788', +... 'feeRecipientAddress': '0x0000000000000000000000000000000000000000', +... 'makerAssetData': bytes.fromhex( +... 'f47261b0000000000000000000000000' +... 'c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'), +... 'takerAssetData': bytes.fromhex( +... 'f47261b0000000000000000000000000' +... 'c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'), +... 'salt': random.randint(1, 100000000000000000), +... 'makerFee': 0, +... 'takerFee': 0, +... 'makerAssetAmount': 100000000000000000, +... 'takerAssetAmount': 100000000000000000, +... 'expirationTimeSeconds': 999999999999999999999} + +Please checkout our demo `here +`__ +if you would like to see how you can create an 0x order +with our python packages. + +To sign this order, we first need to generate the order hash. + +>>> order_hash = generate_order_hash_hex( +... example_order, example_order["exchangeAddress"]) + +Now our maker can sign this order hash with our web3 provider and +the `sign_hash` function from the order utils package. + +>>> maker_signature = sign_hash( +... provider, to_checksum_address(maker), order_hash) + +Now our maker can either deliver his signature and example order +directly to the taker, or he can choose to broadcast the order +with his signature to a 0x-relayer. + +Filling an order +---------------- + +We finally have a valid order! We can now have our taker try +to fill the example order. The *takerAssetAmount* is simply the +amount of tokens (in our case WETH) the taker wants to fill. +For this demonstration, we will be completely filling the order. +Orders may also be partially filled. + +Now let's fill the example order: + +>>> # Instantiate an instance of the exchange_wrapper with +>>> # the provider +>>> zero_ex_exchange = Exchange(provider) +>>> tx_hash = zero_ex_exchange.fill_order( +... order=example_order, +... taker_amount=example_order["takerAssetAmount"], +... signature=maker_signature, +... tx_params=TxParams(from_=taker)) + +Once the transaction is mined, we can get the details of +our exchange through the exchange wrapper. + +>>> fill_event = zero_ex_exchange.get_fill_event(tx_hash) +>>> taker_filled_amount = fill_event[0].args.takerAssetFilledAmount +>>> taker_filled_amount / 10 ** 18 +0.1 + +Cancelling an order +-------------------- + +Now we will show how to cancel an order if the maker no +long wishes to exchange his WETH tokens. We will use a second example +order to demonstrate. + +>>> example_order_2 = { +... 'makerAddress': '0x5409ed021d9299bf6814279a6a1411a7e866a631', +... 'takerAddress': '0x0000000000000000000000000000000000000000', +... 'exchangeAddress': '0x4f833a24e1f95d70f028921e27040ca56e09ab0b', +... 'senderAddress': '0x0000000000000000000000000000000000000000', +... 'feeRecipientAddress': '0x0000000000000000000000000000000000000000', +... 'makerAssetData': bytes.fromhex( +... 'f47261b0000000000000000000000000' +... 'c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'), +... 'takerAssetData': bytes.fromhex( +... 'f47261b0000000000000000000000000' +... 'e41d2489571d322189246dafa5ebde1f4699f498'), +... 'salt': random.randint(1, 100000000000000000), +... 'makerFee': 0, +... 'takerFee': 0, +... 'makerAssetAmount': 1000000000000000000, +... 'takerAssetAmount': 500000000000000000000, +... 'expirationTimeSeconds': 999999999999999999999} +>>> tx_hash = zero_ex_exchange.cancel_order( +... order=example_order_2, tx_params=TxParams(from_=maker)) + +Once the transaction is mined, we can get the details of +our cancellation through the exchange wrapper. + +>>> cancel_event = zero_ex_exchange.get_cancel_event(tx_hash); +>>> cancelled_order_hash = cancel_event[0].args.orderHash.hex() + +Batching orders +---------------- + +The 0x exchange contract can also process multiple orders at +the same time. Here is an example where the taker fills +two orders in one transaction. + +>>> order_1 = { +... 'makerAddress': '0x5409ed021d9299bf6814279a6a1411a7e866a631', +... 'takerAddress': '0x0000000000000000000000000000000000000000', +... 'senderAddress': '0x0000000000000000000000000000000000000000', +... 'feeRecipientAddress': '0x0000000000000000000000000000000000000000', +... 'makerAssetData': bytes.fromhex( +... 'f47261b0000000000000000000000000' +... 'c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'), +... 'takerAssetData': bytes.fromhex( +... 'f47261b0000000000000000000000000' +... 'c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'), +... 'salt': random.randint(1, 100000000000000000), +... 'makerFee': 0, +... 'takerFee': 0, +... 'makerAssetAmount': 100, +... 'takerAssetAmount': 100, +... 'expirationTimeSeconds': 1000000000000000000} +>>> order_hash_1 = generate_order_hash_hex( +... order_1, zero_ex_exchange.address) +>>> signature_1 = sign_hash( +... provider, to_checksum_address(maker), order_hash_1) +>>> order_2 = { +... 'makerAddress': '0x5409ed021d9299bf6814279a6a1411a7e866a631', +... 'takerAddress': '0x0000000000000000000000000000000000000000', +... 'senderAddress': '0x0000000000000000000000000000000000000000', +... 'feeRecipientAddress': '0x0000000000000000000000000000000000000000', +... 'makerAssetData': bytes.fromhex( +... 'f47261b0000000000000000000000000' +... 'c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'), +... 'takerAssetData': bytes.fromhex( +... 'f47261b0000000000000000000000000' +... 'c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'), +... 'salt': random.randint(1, 100000000000000000), +... 'makerFee': 0, +... 'takerFee': 0, +... 'makerAssetAmount': 200, +... 'takerAssetAmount': 200, +... 'expirationTimeSeconds': 2000000000000000000} +>>> order_hash_2 = generate_order_hash_hex( +... order_2, zero_ex_exchange.address) +>>> signature_2 = sign_hash( +... provider, to_checksum_address(maker), order_hash_2) + +Fill order_1 and order_2 together: + +>>> tx_hash = zero_ex_exchange.batch_fill_orders( +... orders=[order_1, order_2], +... taker_amounts=[1, 2], +... signatures=[signature_1, signature_2], +... tx_params=TxParams(from_=taker)) +""" + +from .tx_params import TxParams +from .erc20_wrapper import ERC20Token +from .exchange_wrapper import Exchange diff --git a/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/_base_contract_wrapper.py b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/_base_contract_wrapper.py new file mode 100644 index 0000000000..b5986d630b --- /dev/null +++ b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/_base_contract_wrapper.py @@ -0,0 +1,129 @@ +"""Base wrapper class for accessing ethereum smart contracts.""" + +from typing import Optional, Union + +from eth_utils import to_checksum_address +from web3 import Web3 +from web3.providers.base import BaseProvider + +from .tx_params import TxParams + + +class BaseContractWrapper: + """Base class for wrapping ethereum smart contracts. + + It provides functionality for instantiating a contract instance, + calling view functions, and calling functions which require + transactions. + + :param provider: instance of :class:`web3.providers.base.BaseProvider` + :param account_address: default None, str of account address + :param private_key: default None, str of private_key + """ + + def __init__( + self, + provider: BaseProvider, + account_address: str = None, + private_key: str = None, + ): + """Create an instance of BaseContractWrapper.""" + self._provider = provider + self._account_address = account_address + self._private_key = private_key + self._web3 = Web3(provider) + self._web3_eth = self._web3.eth # pylint: disable=no-member + + self._can_send_tx = False + if self._web3_eth.defaultAccount or self._web3_eth.accounts: + self._can_send_tx = True + else: + middleware_stack = getattr(self._web3, "middleware_stack") + if middleware_stack.get("sign_and_send_raw_middleware"): + self._can_send_tx = True + elif private_key: + self._private_key = private_key + self._web3_eth.defaultAccount = to_checksum_address( + self._web3_eth.account.privateKeyToAccount( + private_key + ).address + ) + self._can_send_tx = True + + def _contract_instance(self, address: str, abi: dict): + """Get a contract instance. + + :param address: string address of contract + :param abi: dict contract ABI + + :returns: instance of contract + """ + return self._web3_eth.contract( + address=to_checksum_address(address), abi=abi + ) + + def _validate_and_checksum_address(self, address: str): + if not self._web3.isAddress(address): + raise TypeError("Invalid address provided: {}".format(address)) + return to_checksum_address(address) + + def _invoke_function_call(self, func, tx_params, view_only): + if view_only: + return func.call() + if not self._can_send_tx: + raise Exception( + "Cannot send transaction because no local private_key" + " or account found." + ) + if not tx_params: + tx_params = TxParams() + if not tx_params.from_: + tx_params.from_ = ( + self._web3_eth.defaultAccount or self._web3_eth.accounts[0] + ) + tx_params.from_ = self._validate_and_checksum_address(tx_params.from_) + if self._private_key: + res = self._sign_and_send_raw_direct(func, tx_params) + else: + res = func.transact(tx_params.as_dict()) + return res + + def _sign_and_send_raw_direct(self, func, tx_params): + transaction = func.buildTransaction(tx_params.as_dict()) + signed_tx = self._web3_eth.account.signTransaction( + transaction, private_key=self._private_key + ) + return self._web3_eth.sendRawTransaction(signed_tx.rawTransaction) + + def execute_method( + self, + address: str, + abi: dict, + method: str, + args: Optional[Union[list, tuple]] = None, + tx_params: Optional[TxParams] = None, + view_only: bool = False, + ) -> str: + """Execute the method on a contract instance. + + :param address: string of contract address + :param abi: dict of contract ABI + :param method: string name of method to call + :param args: default None, list or tuple of arguments for the method + :param tx_params: default None, :class:`TxParams` transaction params + :param view_only: default False, boolean of whether the transaction + should only be validated. + + :returns: str of transaction hash + """ + contract_instance = self._contract_instance(address=address, abi=abi) + if args is None: + args = [] + if hasattr(contract_instance.functions, method): + func = getattr(contract_instance.functions, method)(*args) + return self._invoke_function_call( + func=func, tx_params=tx_params, view_only=view_only + ) + raise Exception( + "No method {} found on contract {}.".format(address, method) + ) diff --git a/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/erc20_wrapper.py b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/erc20_wrapper.py new file mode 100644 index 0000000000..9763e40390 --- /dev/null +++ b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/erc20_wrapper.py @@ -0,0 +1,224 @@ +"""Wrapper for Ethereum ERC20 Token smart contract.""" + +from typing import Optional, Tuple, Union + +from hexbytes import HexBytes +from web3.datastructures import AttributeDict +from web3.providers.base import BaseProvider + +from zero_ex.contract_artifacts import abi_by_name + +from ._base_contract_wrapper import BaseContractWrapper +from .tx_params import TxParams + + +class ERC20Token(BaseContractWrapper): + """Wrapper class for Ethereum ERC20 smart contract. + + :param provider: instance of :class:`web3.providers.base.BaseProvider` + :param account_address: default None, str of account address + :param private_key: default None, str of private_key + """ + + def __init__( + self, + provider: BaseProvider, + account_address: str = None, + private_key: str = None, + ): + """Get an instance of wrapper for ERC20 smart contract.""" + super(ERC20Token, self).__init__( + provider=provider, + account_address=account_address, + private_key=private_key, + ) + + def _erc20(self, token_address): + """Get an instance of the ERC20 smart contract at a specific address. + + :param token_address: string address of token smart contract + + :returns: ERC20 contract object + """ + return self._contract_instance( + address=token_address, abi=abi_by_name("ERC20Token") + ) + + def transfer( + self, + token_address: str, + to_address: str, + value: int, + tx_params: Optional[TxParams] = None, + view_only: bool = False, + ) -> Union[HexBytes, bytes]: + """Transfer the balance from owner's account to another account. + + :param token_address: string address of token smart contract + :param to_address: string address of receiver + :param value: integer amount to send in Wei base unit + :param tx_params: default None, dict of transaction options + :param view_only: default False, boolean of whether to transact or + view only + + :returns: transaction hash + """ + token_address = self._validate_and_checksum_address(token_address) + to_address = self._validate_and_checksum_address(to_address) + # safeguard against fractional inputs + value = int(value) + func = self._erc20(token_address).functions.transfer(to_address, value) + return self._invoke_function_call( + func=func, tx_params=tx_params, view_only=view_only + ) + + def approve( + self, + token_address: str, + spender_address: str, + value: int, + tx_params: Optional[TxParams] = None, + view_only: bool = False, + ) -> Union[HexBytes, bytes]: + """Approve a `spender_address` to spend up to `value` your account. + + :param token_address: string address of token smart contract + :param spender_address: string address of receiver + :param value: integer amount of allowance in Wei base unit + :param tx_params: default None, dict of transaction options + :param view_only: default False, boolean of whether to transact or + view only + + :returns: transaction hash + """ + token_address = self._validate_and_checksum_address(token_address) + spender_address = self._validate_and_checksum_address(spender_address) + # safeguard against fractional inputs + value = int(value) + func = self._erc20(token_address).functions.approve( + spender_address, value + ) + return self._invoke_function_call( + func=func, tx_params=tx_params, view_only=view_only + ) + + def transfer_from( + self, + token_address: str, + authorized_address: str, + to_address: str, + value: int, + tx_params: Optional[TxParams] = None, + view_only: bool = False, + ) -> Union[HexBytes, bytes]: + """Transfer tokens from `authorized_address` to another address. + + Note that the `authorized_address` must have called with `approve` + with your address as the `spender_address`. + + :param token_address: string address of token smart contract + :param authorized_address: string address you have been authorized to + to transfer tokens from + :param to_address: string address of receiver + :param value: integer amount to send in Wei base unit + :param tx_params: default None, dict of transaction options + :param view_only: default False, boolean of whether to transact or + view only + + :returns: transaction hash + """ + token_address = self._validate_and_checksum_address(token_address) + authorized_address = self._validate_and_checksum_address( + authorized_address + ) + to_address = self._validate_and_checksum_address(to_address) + # safeguard against fractional inputs + value = int(value) + func = self._erc20(token_address).functions.transferFrom( + authorized_address, to_address, value + ) + return self._invoke_function_call( + func=func, tx_params=tx_params, view_only=view_only + ) + + def total_supply(self, token_address: str) -> int: + """Get total supply of a given ERC20 Token. + + :param token_address: string address of token smart contract + + :returns: integer amount of tokens in Wei + """ + token_address = self._validate_and_checksum_address(token_address) + func = self._erc20(token_address).functions.totalSupply() + return self._invoke_function_call( + func=func, tx_params=None, view_only=True + ) + + def balance_of(self, token_address: str, owner_address: str) -> int: + """Get token balance of a given owner address. + + :param token_address: string address of token smart contract + :param owner_address: string address of owner to check balance for + + :returns: integer amount of tokens in Wei the owner has + """ + token_address = self._validate_and_checksum_address(token_address) + owner_address = self._validate_and_checksum_address(owner_address) + func = self._erc20(token_address).functions.balanceOf(owner_address) + return self._invoke_function_call( + func=func, tx_params=None, view_only=True + ) + + def allowance( + self, token_address: str, owner_address: str, spender_address: str + ) -> Union[HexBytes, bytes]: + """Get the amount of tokens approved for a spender. + + :param token_address: string address of token smart contract + :param owner_address: string address of owner of the tokens + :param spender_address: string address of spender to be checked + + :returns: integer amount of tokens in Wei spender is authorized + to spend + """ + token_address = self._validate_and_checksum_address(token_address) + owner_address = self._validate_and_checksum_address(owner_address) + spender_address = self._validate_and_checksum_address(spender_address) + func = self._erc20(token_address).functions.allowance( + owner_address, spender_address + ) + return self._invoke_function_call( + func=func, tx_params=None, view_only=True + ) + + def get_transfer_event( + self, token_address: str, tx_hash: Union[HexBytes, bytes] + ) -> Tuple[AttributeDict]: + """Get the result of a transfer from its transaction hash. + + :param token_address: string address of token smart contract + :param tx_hash: `HexBytes` hash of transfer transaction + """ + tx_receipt = self._web3_eth.getTransactionReceipt(tx_hash) + token_address = self._validate_and_checksum_address(token_address) + return ( + self._erc20(token_address) + .events.Transfer() + .processReceipt(tx_receipt) + ) + + def get_approval_event( + self, token_address: str, tx_hash: Union[HexBytes, bytes] + ) -> Tuple[AttributeDict]: + """Get the result of an approval event from its transaction hash. + + :param token_address: string address of token smart contract + :param tx_hash: `HexBytes` hash of approval transaction + """ + tx_receipt = self._web3_eth.getTransactionReceipt(tx_hash) + token_address = self._validate_and_checksum_address(token_address) + return ( + self._erc20(token_address) + .events.Approval() + .processReceipt(tx_receipt) + ) diff --git a/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/exchange_wrapper.py b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/exchange_wrapper.py new file mode 100644 index 0000000000..fbdf8d63cd --- /dev/null +++ b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/exchange_wrapper.py @@ -0,0 +1,324 @@ +"""Wrapper for 0x Exchange smart contract.""" + +from typing import List, Optional, Tuple, Union +from itertools import repeat + +from eth_utils import remove_0x_prefix +from hexbytes import HexBytes +from web3.providers.base import BaseProvider +from web3.datastructures import AttributeDict + +from zero_ex.contract_addresses import NETWORK_TO_ADDRESSES, NetworkId +from zero_ex.contract_artifacts import abi_by_name +from zero_ex.json_schemas import assert_valid +from zero_ex.order_utils import ( + Order, + generate_order_hash_hex, + is_valid_signature, + order_to_jsdict, +) + +from ._base_contract_wrapper import BaseContractWrapper +from .tx_params import TxParams + + +class CancelDisallowedError(Exception): + """Exception for when Cancel is not allowed.""" + + +class Exchange(BaseContractWrapper): + """Wrapper class for 0x Exchange smart contract. + + :param provider: instance of :class:`web3.providers.base.BaseProvider` + :param account_address: default None, str of account address + :param private_key: default None, str of private_key + """ + + def __init__( + self, + provider: BaseProvider, + account_address: str = None, + private_key: str = None, + ): + """Get an instance of the 0x Exchange smart contract wrapper.""" + super(Exchange, self).__init__( + provider=provider, + account_address=account_address, + private_key=private_key, + ) + self._web3_net = self._web3.net # pylint: disable=no-member + self.address = NETWORK_TO_ADDRESSES[ + NetworkId(int(self._web3_net.version)) + ].exchange + self._exchange = self._contract_instance( + address=self.address, abi=abi_by_name("Exchange") + ) + + def fill_order( + self, + order: Order, + taker_amount: int, + signature: str, + tx_params: Optional[TxParams] = None, + view_only: bool = False, + ) -> Union[HexBytes, bytes]: + """Fill a signed order with given amount of taker asset. + + This is the most basic way to fill an order. All of the other methods + call fillOrder under the hood with additional logic. This function + will attempt to fill the amount specified by the caller. However, if + the remaining fillable amount is less than the amount specified, the + remaining amount will be filled. Partial fills are allowed when + filling orders. + + See the specification docs for `fillOrder + `_. + + :param order: instance of :class:`zero_ex.order_utils.Order` + :param taker_amount: integer taker amount in Wei (1 Wei is 10e-18 ETH) + :param signature: str or hexstr or bytes of order hash signature + :param tx_params: default None, :class:`TxParams` transaction params + :param view_only: default False, boolean of whether to transact or + view only + + :returns: `HexBytes` transaction hash + """ + assert_valid(order_to_jsdict(order, self.address), "/orderSchema") + is_valid_signature( + self._provider, + generate_order_hash_hex(order, self.address), + signature, + order["makerAddress"], + ) + # safeguard against fractional inputs + taker_fill_amount = int(taker_amount) + normalized_signature = bytes.fromhex(remove_0x_prefix(signature)) + func = self._exchange.functions.fillOrder( + order, taker_fill_amount, normalized_signature + ) + return self._invoke_function_call( + func=func, tx_params=tx_params, view_only=view_only + ) + + def batch_fill_orders( + self, + orders: List[Order], + taker_amounts: List[int], + signatures: List[str], + tx_params: Optional[TxParams] = None, + view_only: bool = False, + ) -> Union[HexBytes, bytes]: + """Call `fillOrder` sequentially for orders, amounts and signatures. + + :param orders: list of instances of :class:`zero_ex.order_utils.Order` + :param taker_amounts: list of integer taker amounts in Wei + :param signatures: list of str|hexstr|bytes of order hash signature + :param tx_params: default None, :class:`TxParams` transaction params + :param view_only: default False, boolean of whether to transact or + view only + + :returns: `HexBytes` transaction hash + """ + order_jsdicts = [ + order_to_jsdict(order, self.address) for order in orders + ] + map(assert_valid, order_jsdicts, repeat("/orderSchema")) + # safeguard against fractional inputs + normalized_fill_amounts = [ + int(taker_fill_amount) for taker_fill_amount in taker_amounts + ] + normalized_signatures = [ + bytes.fromhex(remove_0x_prefix(signature)) + for signature in signatures + ] + func = self._exchange.functions.batchFillOrders( + orders, normalized_fill_amounts, normalized_signatures + ) + return self._invoke_function_call( + func=func, tx_params=tx_params, view_only=view_only + ) + + def fill_or_kill_order( + self, + order: Order, + taker_amount: int, + signature: str, + tx_params: Optional[TxParams] = None, + view_only: bool = False, + ) -> Union[HexBytes, bytes]: + """Attemp to `fillOrder`, revert if fill is not exact amount. + + :param order: instance of :class:`zero_ex.order_utils.Order` + :param taker_amount: integer taker amount in Wei (1 Wei is 10e-18 ETH) + :param signature: str or hexstr or bytes of order hash signature + :param tx_params: default None, :class:`TxParams` transaction params + :param view_only: default False, boolean of whether to transact or + view only + + :returns: `HexBytes` transaction hash + """ + assert_valid(order_to_jsdict(order, self.address), "/orderSchema") + is_valid_signature( + self._provider, + generate_order_hash_hex(order, self.address), + signature, + order["makerAddress"], + ) + # safeguard against fractional inputs + taker_fill_amount = int(taker_amount) + normalized_signature = bytes.fromhex(remove_0x_prefix(signature)) + func = self._exchange.functions.fillOrKillOrder( + order, taker_fill_amount, normalized_signature + ) + return self._invoke_function_call( + func=func, tx_params=tx_params, view_only=view_only + ) + + def batch_fill_or_kill_orders( + self, + orders: List[Order], + taker_amounts: List[int], + signatures: List[str], + tx_params: Optional[TxParams] = None, + view_only: bool = False, + ) -> Union[HexBytes, bytes]: + """Call `fillOrKillOrder` sequentially for orders. + + :param orders: list of instances of :class:`zero_ex.order_utils.Order` + :param taker_amounts: list of integer taker amounts in Wei + :param signatures: list of str|hexstr|bytes of order hash signature + :param tx_params: default None, :class:`TxParams` transaction params + :param view_only: default False, boolean of whether to transact or + view only + + :returns: `HexBytes` transaction hash + """ + order_jsdicts = [ + order_to_jsdict(order, self.address) for order in orders + ] + map(assert_valid, order_jsdicts, repeat("/orderSchema")) + # safeguard against fractional inputs + normalized_fill_amounts = [ + int(taker_fill_amount) for taker_fill_amount in taker_amounts + ] + normalized_signatures = [ + bytes.fromhex(remove_0x_prefix(signature)) + for signature in signatures + ] + func = self._exchange.functions.batchFillOrKillOrders( + orders, normalized_fill_amounts, normalized_signatures + ) + return self._invoke_function_call( + func=func, tx_params=tx_params, view_only=view_only + ) + + def cancel_order( + self, + order: Order, + tx_params: Optional[TxParams] = None, + view_only: bool = False, + ) -> Union[HexBytes, bytes]: + """Cancel an order. + + See the specification docs for `cancelOrder + `_. + + :param order: instance of :class:`zero_ex.order_utils.Order` + :param tx_params: default None, :class:`TxParams` transaction params + :param view_only: default False, boolean of whether to transact or + view only + + :returns: `HexBytes` transaction hash + """ + assert_valid(order_to_jsdict(order, self.address), "/orderSchema") + maker_address = self._validate_and_checksum_address( + order["makerAddress"] + ) + + if tx_params and tx_params.from_: + self._raise_if_maker_not_canceller( + maker_address, + self._validate_and_checksum_address(tx_params.from_), + ) + elif self._web3_eth.defaultAccount: + self._raise_if_maker_not_canceller( + maker_address, self._web3_eth.defaultAccount + ) + func = self._exchange.functions.cancelOrder(order) + return self._invoke_function_call( + func=func, tx_params=tx_params, view_only=view_only + ) + + def batch_cancel_orders( + self, + orders: List[Order], + tx_params: Optional[TxParams] = None, + view_only: bool = False, + ) -> Union[HexBytes, bytes]: + """Call `cancelOrder` sequentially for provided orders. + + :param orders: list of instance of :class:`zero_ex.order_utils.Order` + :param tx_params: default None, :class:`TxParams` transaction params + :param view_only: default False, boolean of whether to transact or + view only + + :returns: `HexBytes` transaction hash + """ + order_jsdicts = [ + order_to_jsdict(order, self.address) for order in orders + ] + map(assert_valid, order_jsdicts, repeat("/orderSchema")) + maker_addresses = [ + self._validate_and_checksum_address(order["makerAddress"]) + for order in orders + ] + if tx_params and tx_params.from_: + map( + self._raise_if_maker_not_canceller, + maker_addresses, + repeat(tx_params.from_), + ) + elif self._web3_eth.defaultAccount: + map( + self._raise_if_maker_not_canceller, + maker_addresses, + repeat(self._web3_eth.defaultAccount), + ) + func = self._exchange.functions.batchCancelOrders(orders) + return self._invoke_function_call( + func=func, tx_params=tx_params, view_only=view_only + ) + + def get_fill_event( + self, tx_hash: Union[HexBytes, bytes] + ) -> Tuple[AttributeDict]: + """Get fill event for a fill transaction. + + :param tx_hash: `HexBytes` hash of fill transaction + + :returns: tuple of `FillResults`. + """ + tx_receipt = self._web3_eth.getTransactionReceipt(tx_hash) + return self._exchange.events.Fill().processReceipt(tx_receipt) + + def get_cancel_event( + self, tx_hash: Union[HexBytes, bytes] + ) -> Tuple[AttributeDict]: + """Get cancel event for cancel transaction. + + :param tx_hash: `HexBytes` hash of cancel transaction + """ + tx_receipt = self._web3_eth.getTransactionReceipt(tx_hash) + return self._exchange.events.Cancel().processReceipt(tx_receipt) + + @staticmethod + def _raise_if_maker_not_canceller(maker_address, canceller_address): + """Raise exception is maker is not same as canceller.""" + if maker_address != canceller_address: + raise CancelDisallowedError( + "Order with makerAddress {} can not be cancelled by {}".format( + maker_address, canceller_address + ) + ) diff --git a/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/py.typed b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/tx_params.py b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/tx_params.py new file mode 100644 index 0000000000..4b864898ec --- /dev/null +++ b/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/tx_params.py @@ -0,0 +1,39 @@ +"""Transaction parameters for use with contract wrappers.""" + +from typing import Optional + +import attr + + +@attr.s(kw_only=True) +class TxParams: + """Transaction parameters for use with contract wrappers. + + :param from_: default None, string of account address to initiate tx from + :param value: default None, integer of amount of ETH in Wei for transfer + :param gas: default None, integer maximum amount of ETH in Wei for gas + :param grasPrice: default None, integer price of unit of gas + :param nonce: default None, integer nonce for account + """ + + from_: Optional[str] = attr.ib(default=None) + value: Optional[int] = attr.ib( + default=None, converter=attr.converters.optional(int) + ) + gas: Optional[int] = attr.ib( + default=None, converter=attr.converters.optional(int) + ) + gasPrice: Optional[int] = attr.ib( + default=None, converter=attr.converters.optional(int) + ) + nonce: Optional[int] = attr.ib( + default=None, converter=attr.converters.optional(int) + ) + + def as_dict(self): + """Get transaction params as dict appropriate for web3.""" + res = {k: v for k, v in attr.asdict(self).items() if v is not None} + if "from_" in res: + res["from"] = res["from_"] + del res["from_"] + return res diff --git a/python-packages/contract_wrappers/stubs/distutils/__init__.pyi b/python-packages/contract_wrappers/stubs/distutils/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/contract_wrappers/stubs/distutils/command/__init__.pyi b/python-packages/contract_wrappers/stubs/distutils/command/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/contract_wrappers/stubs/distutils/command/clean.pyi b/python-packages/contract_wrappers/stubs/distutils/command/clean.pyi new file mode 100644 index 0000000000..46a42ddb13 --- /dev/null +++ b/python-packages/contract_wrappers/stubs/distutils/command/clean.pyi @@ -0,0 +1,7 @@ +from distutils.core import Command + +class clean(Command): + def initialize_options(self: clean) -> None: ... + def finalize_options(self: clean) -> None: ... + def run(self: clean) -> None: ... + ... diff --git a/python-packages/contract_wrappers/stubs/eth_account/__init__.pyi b/python-packages/contract_wrappers/stubs/eth_account/__init__.pyi new file mode 100644 index 0000000000..5caed9e96f --- /dev/null +++ b/python-packages/contract_wrappers/stubs/eth_account/__init__.pyi @@ -0,0 +1 @@ +class Account: ... diff --git a/python-packages/contract_wrappers/stubs/eth_account/local.pyi b/python-packages/contract_wrappers/stubs/eth_account/local.pyi new file mode 100644 index 0000000000..d0b3515699 --- /dev/null +++ b/python-packages/contract_wrappers/stubs/eth_account/local.pyi @@ -0,0 +1,3 @@ +class LocalAccount: + address: str + ... diff --git a/python-packages/contract_wrappers/stubs/eth_utils/__init__.pyi b/python-packages/contract_wrappers/stubs/eth_utils/__init__.pyi new file mode 100644 index 0000000000..90e1277eb0 --- /dev/null +++ b/python-packages/contract_wrappers/stubs/eth_utils/__init__.pyi @@ -0,0 +1,3 @@ +def to_checksum_address(address: str) -> str: ... + +def remove_0x_prefix(hex_string: str) -> str: ... \ No newline at end of file diff --git a/python-packages/contract_wrappers/stubs/hexbytes/__init__.pyi b/python-packages/contract_wrappers/stubs/hexbytes/__init__.pyi new file mode 100644 index 0000000000..bc88efe52a --- /dev/null +++ b/python-packages/contract_wrappers/stubs/hexbytes/__init__.pyi @@ -0,0 +1 @@ +class HexBytes: ... diff --git a/python-packages/contract_wrappers/stubs/pytest/__init__.pyi b/python-packages/contract_wrappers/stubs/pytest/__init__.pyi new file mode 100644 index 0000000000..d9209ab5b9 --- /dev/null +++ b/python-packages/contract_wrappers/stubs/pytest/__init__.pyi @@ -0,0 +1,9 @@ +from typing import Callable + +def fixture(scope: str) -> Callable: + ... + +class ExceptionInfo: + ... + +def raises(exception: Exception) -> ExceptionInfo: ... \ No newline at end of file diff --git a/python-packages/contract_wrappers/stubs/setuptools/__init__.pyi b/python-packages/contract_wrappers/stubs/setuptools/__init__.pyi new file mode 100644 index 0000000000..8ea8d32b7e --- /dev/null +++ b/python-packages/contract_wrappers/stubs/setuptools/__init__.pyi @@ -0,0 +1,8 @@ +from distutils.dist import Distribution +from typing import Any, List + +def setup(**attrs: Any) -> Distribution: ... + +class Command: ... + +def find_packages(where: str) -> List[str]: ... diff --git a/python-packages/contract_wrappers/stubs/setuptools/command/__init__.pyi b/python-packages/contract_wrappers/stubs/setuptools/command/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/contract_wrappers/stubs/setuptools/command/test.pyi b/python-packages/contract_wrappers/stubs/setuptools/command/test.pyi new file mode 100644 index 0000000000..c5ec770ad3 --- /dev/null +++ b/python-packages/contract_wrappers/stubs/setuptools/command/test.pyi @@ -0,0 +1,3 @@ +from setuptools import Command + +class test(Command): ... diff --git a/python-packages/contract_wrappers/stubs/sha3/__init__.pyi b/python-packages/contract_wrappers/stubs/sha3/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/contract_wrappers/stubs/web3/__init__.pyi b/python-packages/contract_wrappers/stubs/web3/__init__.pyi new file mode 100644 index 0000000000..82e638b479 --- /dev/null +++ b/python-packages/contract_wrappers/stubs/web3/__init__.pyi @@ -0,0 +1,56 @@ +from typing import Any, Callable, Dict, List, Optional, Union + +from hexbytes import HexBytes +from eth_account.local import LocalAccount +from web3 import datastructures +from web3.utils import datatypes +from web3.providers.base import BaseProvider + + +class Web3: + class HTTPProvider(BaseProvider): + ... + + def __init__(self, provider: BaseProvider) -> None: ... + + @staticmethod + def sha3( + primitive: Optional[Union[bytes, int, None]] = None, + text: Optional[str] = None, + hexstr: Optional[str] = None + ) -> bytes: ... + + @staticmethod + def isAddress(address: str) -> bool: ... + + class middleware_stack: + @staticmethod + def get(key: str) -> Callable: ... + ... + + class net: + version: str + ... + + + class eth: + defaultAccount: str + accounts: List[str] + ... + + class account: + @staticmethod + def privateKeyToAccount(private_key: str) -> LocalAccount: ... + ... + + @staticmethod + def getTransactionReceipt(tx_hash: Union[HexBytes, bytes]) -> Any: ... + + @staticmethod + def contract(address: str, abi: Dict) -> datatypes.Contract: ... + ... + + @staticmethod + def isAddress(address: str) -> bool: ... + ... + ... diff --git a/python-packages/contract_wrappers/stubs/web3/datastructures.pyi b/python-packages/contract_wrappers/stubs/web3/datastructures.pyi new file mode 100644 index 0000000000..fac8f29268 --- /dev/null +++ b/python-packages/contract_wrappers/stubs/web3/datastructures.pyi @@ -0,0 +1,5 @@ +class NamedElementOnion: + ... + +class AttributeDict: + ... \ No newline at end of file diff --git a/python-packages/contract_wrappers/stubs/web3/exceptions.pyi b/python-packages/contract_wrappers/stubs/web3/exceptions.pyi new file mode 100644 index 0000000000..83abf973d1 --- /dev/null +++ b/python-packages/contract_wrappers/stubs/web3/exceptions.pyi @@ -0,0 +1,2 @@ +class BadFunctionCallOutput(Exception): + ... diff --git a/python-packages/contract_wrappers/stubs/web3/providers/__init__.pyi b/python-packages/contract_wrappers/stubs/web3/providers/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/contract_wrappers/stubs/web3/providers/base.pyi b/python-packages/contract_wrappers/stubs/web3/providers/base.pyi new file mode 100644 index 0000000000..82ca9e3da1 --- /dev/null +++ b/python-packages/contract_wrappers/stubs/web3/providers/base.pyi @@ -0,0 +1,2 @@ +class BaseProvider: + ... diff --git a/python-packages/contract_wrappers/stubs/web3/utils/__init__.pyi b/python-packages/contract_wrappers/stubs/web3/utils/__init__.pyi new file mode 100644 index 0000000000..e69de29bb2 diff --git a/python-packages/contract_wrappers/stubs/web3/utils/datatypes.pyi b/python-packages/contract_wrappers/stubs/web3/utils/datatypes.pyi new file mode 100644 index 0000000000..70baff3728 --- /dev/null +++ b/python-packages/contract_wrappers/stubs/web3/utils/datatypes.pyi @@ -0,0 +1,3 @@ +class Contract: + def call(self): ... + ... diff --git a/python-packages/contract_wrappers/test/__init__.py b/python-packages/contract_wrappers/test/__init__.py new file mode 100644 index 0000000000..30ad154b25 --- /dev/null +++ b/python-packages/contract_wrappers/test/__init__.py @@ -0,0 +1 @@ +"""Tests of zero_ex.contract_wrappers.""" diff --git a/python-packages/contract_wrappers/test/conftest.py b/python-packages/contract_wrappers/test/conftest.py new file mode 100644 index 0000000000..789ca639ed --- /dev/null +++ b/python-packages/contract_wrappers/test/conftest.py @@ -0,0 +1,79 @@ +"""Fixtures for pytest.""" + +import pytest +from eth_utils import remove_0x_prefix, to_checksum_address +from web3 import Web3 + +from zero_ex.order_utils import asset_data_utils +from zero_ex.contract_addresses import NETWORK_TO_ADDRESSES, NetworkId +from zero_ex.contract_artifacts import abi_by_name + + +@pytest.fixture(scope="module") +def ganache_provider(): + """Get a ganache web3 provider.""" + return Web3.HTTPProvider(endpoint_uri="http://127.0.0.1:8545") + + +@pytest.fixture(scope="module") +def web3_instance(ganache_provider): # pylint: disable=redefined-outer-name + """Get a web3 instance.""" + return Web3(ganache_provider) + + +@pytest.fixture(scope="module") +def web3_eth(web3_instance): # pylint: disable=redefined-outer-name + """Get web3 instance's eth member.""" + return web3_instance.eth # pylint: disable=no-member + + +@pytest.fixture(scope="module") +def accounts(web3_eth): # pylint: disable=redefined-outer-name + """Get the accounts associated with the test web3_eth instance.""" + return web3_eth.accounts + + +@pytest.fixture(scope="module") +def erc20_proxy_address(): + """Get the 0x ERC20 Proxy address.""" + return NETWORK_TO_ADDRESSES[NetworkId.GANACHE].erc20_proxy + + +@pytest.fixture(scope="module") +def weth_address(): + """Get address of Wrapped Ether (WETH) token for the Ganache network.""" + return NETWORK_TO_ADDRESSES[NetworkId.GANACHE].ether_token + + +@pytest.fixture(scope="module") +def weth_asset_data(weth_address): # pylint: disable=redefined-outer-name + """Get 0x asset data for Wrapped Ether (WETH) token.""" + return bytes.fromhex( + remove_0x_prefix( + asset_data_utils.encode_erc20_asset_data(weth_address) + ) + ) + + +@pytest.fixture(scope="module") +def weth_instance( + web3_eth, weth_address +): # pylint: disable=redefined-outer-name + """Get an instance of the WrapperEther contract.""" + return web3_eth.contract( + address=to_checksum_address(weth_address), abi=abi_by_name("WETH9") + ) + + +@pytest.fixture(scope="module") +def zrx_address(): + """Get address of ZRX token for Ganache network.""" + return NETWORK_TO_ADDRESSES[NetworkId.GANACHE].zrx_token + + +@pytest.fixture(scope="module") +def zrx_asset_data(zrx_address): # pylint: disable=redefined-outer-name + """Get 0x asset data for ZRX token.""" + return bytes.fromhex( + remove_0x_prefix(asset_data_utils.encode_erc20_asset_data(zrx_address)) + ) diff --git a/python-packages/contract_wrappers/test/test_base_contract_wrapper.py b/python-packages/contract_wrappers/test/test_base_contract_wrapper.py new file mode 100644 index 0000000000..8b5ca34dc5 --- /dev/null +++ b/python-packages/contract_wrappers/test/test_base_contract_wrapper.py @@ -0,0 +1,47 @@ +"""Tests for :class:`BaseContractWrapper`.""" + +import pytest +from eth_utils import to_checksum_address + +from zero_ex.contract_artifacts import abi_by_name +from zero_ex.contract_wrappers._base_contract_wrapper import ( + BaseContractWrapper, +) + + +@pytest.fixture(scope="module") +def contract_wrapper(ganache_provider): + """Get a BaseContractWrapper instance for testing.""" + return BaseContractWrapper(provider=ganache_provider) + + +def test_contract_wrapper__execute_method( + accounts, + contract_wrapper, # pylint: disable=redefined-outer-name + erc20_proxy_address, + weth_address, # pylint: disable=redefined-outer-name +): + """Test :function:`BaseContractWrapper.execute` method.""" + acc1_allowance = contract_wrapper.execute_method( + address=weth_address, + abi=abi_by_name("WETH9"), + method="allowance", + view_only=True, + args=( + to_checksum_address(accounts[3]), + to_checksum_address(erc20_proxy_address), + ), + ) + assert acc1_allowance == 0 + + with pytest.raises(Exception): + contract_wrapper.execute_method( + address=weth_address, + abi=abi_by_name("WETH9"), + method="send", + view_only=True, + args=[ + to_checksum_address(accounts[3]), + to_checksum_address(erc20_proxy_address), + ], + ) diff --git a/python-packages/contract_wrappers/test/test_erc20_wrapper.py b/python-packages/contract_wrappers/test/test_erc20_wrapper.py new file mode 100644 index 0000000000..ca3b1fbfc1 --- /dev/null +++ b/python-packages/contract_wrappers/test/test_erc20_wrapper.py @@ -0,0 +1,80 @@ +"""Tests for ERC20Token wrapper.""" + +from decimal import Decimal + +import pytest + +from zero_ex.contract_wrappers import ERC20Token, TxParams + + +MAX_ALLOWANCE = int("{:.0f}".format(Decimal(2) ** 256 - 1)) + + +@pytest.fixture(scope="module") +def erc20_wrapper(ganache_provider): + """Get an instance of ERC20Token wrapper class for testing.""" + return ERC20Token(ganache_provider) + + +def test_erc20_wrapper__balance_of( + accounts, + erc20_wrapper, # pylint: disable=redefined-outer-name + weth_address, + weth_instance, # pylint: disable=redefined-outer-name +): + """Test getting baance of an account for an ERC20 token.""" + acc1_original_weth_balance = erc20_wrapper.balance_of( + weth_address, accounts[0] + ) + acc2_original_weth_balance = erc20_wrapper.balance_of( + weth_address, accounts[1] + ) + + expected_difference = 1 * 10 ** 18 + + weth_instance.functions.deposit().transact( + {"from": accounts[0], "value": expected_difference} + ) + weth_instance.functions.deposit().transact( + {"from": accounts[1], "value": expected_difference} + ) + acc1_weth_balance = erc20_wrapper.balance_of(weth_address, accounts[0]) + acc2_weth_balance = erc20_wrapper.balance_of(weth_address, accounts[1]) + + assert ( + acc1_weth_balance - acc1_original_weth_balance == expected_difference + ) + assert ( + acc2_weth_balance - acc2_original_weth_balance == expected_difference + ) + + +def test_erc20_wrapper__approve( + accounts, + erc20_proxy_address, + erc20_wrapper, # pylint: disable=redefined-outer-name + weth_address, # pylint: disable=redefined-outer-name +): + """Test approving one account to spend balance from another account.""" + erc20_wrapper.approve( + weth_address, + erc20_proxy_address, + MAX_ALLOWANCE, + tx_params=TxParams(from_=accounts[0]), + ) + erc20_wrapper.approve( + weth_address, + erc20_proxy_address, + MAX_ALLOWANCE, + tx_params=TxParams(from_=accounts[1]), + ) + + acc_1_weth_allowance = erc20_wrapper.allowance( + weth_address, accounts[0], erc20_proxy_address + ) + acc_2_weth_allowance = erc20_wrapper.allowance( + weth_address, accounts[1], erc20_proxy_address + ) + + assert acc_1_weth_allowance == MAX_ALLOWANCE + assert acc_2_weth_allowance == MAX_ALLOWANCE diff --git a/python-packages/contract_wrappers/test/test_exchange_wrapper.py b/python-packages/contract_wrappers/test/test_exchange_wrapper.py new file mode 100644 index 0000000000..72f638e631 --- /dev/null +++ b/python-packages/contract_wrappers/test/test_exchange_wrapper.py @@ -0,0 +1,124 @@ +"""Test 0x Exchnage wrapper.""" + +import random + +import pytest +from eth_utils import remove_0x_prefix + +from zero_ex.contract_wrappers import Exchange, TxParams +from zero_ex.json_schemas import assert_valid +from zero_ex.order_utils import generate_order_hash_hex, Order, sign_hash + + +@pytest.fixture(scope="module") +def exchange_wrapper(ganache_provider): + """Get an Exchange wrapper instance.""" + return Exchange(provider=ganache_provider) + + +def create_test_order( + maker_address, + maker_asset_amount, + maker_asset_data, + taker_asset_amount, + taker_asset_data, +): + """Create a test order.""" + order: Order = { + "makerAddress": maker_address.lower(), + "takerAddress": "0x0000000000000000000000000000000000000000", + "feeRecipientAddress": "0x0000000000000000000000000000000000000000", + "senderAddress": "0x0000000000000000000000000000000000000000", + "makerAssetAmount": maker_asset_amount, + "takerAssetAmount": taker_asset_amount, + "makerFee": 0, + "takerFee": 0, + "expirationTimeSeconds": 100000000000000, + "salt": random.randint(1, 1000000000), + "makerAssetData": maker_asset_data, + "takerAssetData": taker_asset_data, + } + return order + + +def assert_fill_log(fill_log, maker, taker, order, order_hash): + """assert that the fill log matches the order details""" + assert fill_log.makerAddress == maker + assert fill_log.takerAddress == taker + assert fill_log.feeRecipientAddress == order["feeRecipientAddress"] + assert fill_log.senderAddress == taker + assert fill_log.orderHash == bytes.fromhex(remove_0x_prefix(order_hash)) + assert fill_log.makerAssetFilledAmount == order["makerAssetAmount"] + assert fill_log.takerAssetFilledAmount == order["takerAssetAmount"] + assert fill_log.makerFeePaid == order["makerFee"] + assert fill_log.takerFeePaid == order["takerFee"] + assert fill_log.makerAssetData == order["makerAssetData"] + assert fill_log.takerAssetData == order["takerAssetData"] + + +def test_exchange_wrapper__fill_order( + accounts, + exchange_wrapper, # pylint: disable=redefined-outer-name + ganache_provider, + weth_asset_data, +): + """Test filling an order.""" + taker = accounts[0] + maker = accounts[1] + exchange_address = exchange_wrapper.address + order = create_test_order(maker, 1, weth_asset_data, 1, weth_asset_data) + order_hash = generate_order_hash_hex( + order=order, exchange_address=exchange_address + ) + order_signature = sign_hash(ganache_provider, maker, order_hash) + + tx_hash = exchange_wrapper.fill_order( + order=order, + taker_amount=order["takerAssetAmount"], + signature=order_signature, + tx_params=TxParams(from_=taker), + ) + assert_valid(tx_hash.hex(), "/hexSchema") + + fill_event = exchange_wrapper.get_fill_event(tx_hash) + assert_fill_log(fill_event[0].args, maker, taker, order, order_hash) + + +# pylint: disable=too-many-locals +def test_exchange_wrapper__batch_fill_orders( + accounts, + exchange_wrapper, # pylint: disable=redefined-outer-name + ganache_provider, + weth_asset_data, +): + """Test filling a batch of orders.""" + taker = accounts[0] + maker = accounts[1] + exchange_address = exchange_wrapper.address + orders = [] + order_1 = create_test_order(maker, 1, weth_asset_data, 1, weth_asset_data) + order_2 = create_test_order(maker, 1, weth_asset_data, 1, weth_asset_data) + orders.append(order_1) + orders.append(order_2) + order_hashes = [ + generate_order_hash_hex(order=order, exchange_address=exchange_address) + for order in orders + ] + order_signatures = [ + sign_hash(ganache_provider, maker, order_hash) + for order_hash in order_hashes + ] + taker_amounts = [order["takerAssetAmount"] for order in orders] + tx_hash = exchange_wrapper.batch_fill_orders( + orders=orders, + taker_amounts=taker_amounts, + signatures=order_signatures, + tx_params=TxParams(from_=taker), + ) + assert_valid(tx_hash.hex(), "/hexSchema") + + fill_events = exchange_wrapper.get_fill_event(tx_hash) + for index, order in enumerate(orders): + assert_fill_log( + fill_events[index].args, maker, taker, order, order_hashes[index] + ) diff --git a/python-packages/contract_wrappers/tox.ini b/python-packages/contract_wrappers/tox.ini new file mode 100644 index 0000000000..cd847a5bb8 --- /dev/null +++ b/python-packages/contract_wrappers/tox.ini @@ -0,0 +1,25 @@ +# tox (https://tox.readthedocs.io/) is a tool for running tests +# in multiple virtualenvs. This configuration file will run the +# test suite on all supported python versions. To use it, "pip install tox" +# and then run "tox" from this directory. + +[tox] +envlist = py37 + +[testenv] +commands = + pip install -e .[dev] + python setup.py test + +[testenv:run_tests_against_test_deployment] +commands = + # install dependencies from real PyPI + pip install 0x-contract-addresses 0x-contract-artifacts 0x-json-schemas 0x-order-utils 0x-web3 attrs eth_utils hypothesis>=3.31.2 mypy_extensions pytest + # install package-under-test from test PyPI + pip install --index-url https://test.pypi.org/legacy/ 0x-contract-wrappers + pytest test + +[testenv:run_tests_against_deployment] +commands = + pip install 0x-contract-wrappers + pytest test From 951fcf384c21046227d81d704885a21c274d907a Mon Sep 17 00:00:00 2001 From: "F. Eugene Aumson" Date: Tue, 26 Mar 2019 18:00:16 -0400 Subject: [PATCH 94/95] pin launch kit version in test-python ci task --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c0e085d519..538ea4d789 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -200,7 +200,7 @@ jobs: docker: - image: circleci/python - image: 0xorg/ganache-cli:2.2.2 - - image: 0xorg/launch-kit-ci + - image: 0xorg/launch-kit-ci:0.0.1 command: | yarn start:ts -p 3000:3000 steps: From 3099ba71eb8913af357fd50837b9909b35271bb9 Mon Sep 17 00:00:00 2001 From: Michael Huang Date: Tue, 26 Mar 2019 18:07:04 -0500 Subject: [PATCH 95/95] New demos for Python packages (#1734) End-to-end demos of constructing and signing an order and submitting it to a Relayer. Docs are generated from the code, and include usage examples that are verified through automated testing. --- python-packages/cmd_pkgs_in_dep_order.py | 1 - python-packages/contract_demo/.discharge.json | 13 - python-packages/contract_demo/README.md | 39 - python-packages/contract_demo/setup.py | 146 ---- .../contract_demo/stubs/command/__init__.pyi | 0 .../contract_demo/stubs/command/clean.pyi | 7 - .../stubs/distutils/__init__.pyi | 0 .../stubs/distutils/command/__init__.pyi | 0 .../stubs/distutils/command/clean.pyi | 7 - .../stubs/eth_utils/__init__.pyi | 4 - .../contract_demo/stubs/pytest/__init__.pyi | 0 .../stubs/setuptools/__init__.pyi | 8 - .../stubs/setuptools/command/__init__.pyi | 0 .../stubs/setuptools/command/test.pyi | 3 - .../contract_demo/stubs/web3/__init__.pyi | 2 - .../stubs/web3/utils/__init__.pyi | 0 .../stubs/web3/utils/datatypes.pyi | 3 - .../contract_demo/test/__init__.py | 1 - .../contract_demo/test/test_exchange.py | 117 --- .../src/zero_ex/json_schemas/__init__.py | 29 +- .../src/zero_ex/order_utils/__init__.py | 50 +- python-packages/sra_client/.pylintrc | 4 + python-packages/sra_client/CHANGELOG.json | 17 +- .../test => sra_client}/conf.py | 7 +- .../test => sra_client}/doc_static/.gitkeep | 0 .../doc_template/.gitkeep} | 0 .../test => sra_client}/index.rst | 13 +- python-packages/sra_client/setup.py | 109 ++- .../sra_client/sra_client/__init__.py | 165 +++- .../sra_client/sra_client/api/default_api.py | 739 ++++++++++-------- .../sra_client/sra_client/api_client.py | 3 +- python-packages/sra_client/test/__init__.py | 1 + .../sra_client/test/test_default_api.py | 81 +- 33 files changed, 872 insertions(+), 697 deletions(-) delete mode 100644 python-packages/contract_demo/.discharge.json delete mode 100644 python-packages/contract_demo/README.md delete mode 100755 python-packages/contract_demo/setup.py delete mode 100644 python-packages/contract_demo/stubs/command/__init__.pyi delete mode 100644 python-packages/contract_demo/stubs/command/clean.pyi delete mode 100644 python-packages/contract_demo/stubs/distutils/__init__.pyi delete mode 100644 python-packages/contract_demo/stubs/distutils/command/__init__.pyi delete mode 100644 python-packages/contract_demo/stubs/distutils/command/clean.pyi delete mode 100644 python-packages/contract_demo/stubs/eth_utils/__init__.pyi delete mode 100644 python-packages/contract_demo/stubs/pytest/__init__.pyi delete mode 100644 python-packages/contract_demo/stubs/setuptools/__init__.pyi delete mode 100644 python-packages/contract_demo/stubs/setuptools/command/__init__.pyi delete mode 100644 python-packages/contract_demo/stubs/setuptools/command/test.pyi delete mode 100644 python-packages/contract_demo/stubs/web3/__init__.pyi delete mode 100644 python-packages/contract_demo/stubs/web3/utils/__init__.pyi delete mode 100644 python-packages/contract_demo/stubs/web3/utils/datatypes.pyi delete mode 100644 python-packages/contract_demo/test/__init__.py delete mode 100644 python-packages/contract_demo/test/test_exchange.py create mode 100644 python-packages/sra_client/.pylintrc rename python-packages/{contract_demo/test => sra_client}/conf.py (89%) rename python-packages/{contract_demo/test => sra_client}/doc_static/.gitkeep (100%) rename python-packages/{contract_demo/stubs/__init__.pyi => sra_client/doc_template/.gitkeep} (100%) rename python-packages/{contract_demo/test => sra_client}/index.rst (58%) diff --git a/python-packages/cmd_pkgs_in_dep_order.py b/python-packages/cmd_pkgs_in_dep_order.py index 0a989fb1c7..dbc0814846 100755 --- a/python-packages/cmd_pkgs_in_dep_order.py +++ b/python-packages/cmd_pkgs_in_dep_order.py @@ -17,7 +17,6 @@ PACKAGE_DEPENDENCY_LIST = [ "sra_client", "order_utils", "middlewares", - "contract_demo" ] for package in PACKAGE_DEPENDENCY_LIST: diff --git a/python-packages/contract_demo/.discharge.json b/python-packages/contract_demo/.discharge.json deleted file mode 100644 index 9d811ae3e6..0000000000 --- a/python-packages/contract_demo/.discharge.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "domain": "0x-contract-demo-py", - "build_command": "python setup.py build_sphinx", - "upload_directory": "build/docs/html", - "index_key": "index.html", - "error_key": "index.html", - "trailing_slashes": true, - "cache": 3600, - "aws_profile": "default", - "aws_region": "us-east-1", - "cdn": false, - "dns_configured": true -} diff --git a/python-packages/contract_demo/README.md b/python-packages/contract_demo/README.md deleted file mode 100644 index 3a0f964e30..0000000000 --- a/python-packages/contract_demo/README.md +++ /dev/null @@ -1,39 +0,0 @@ -## 0x-contract-demo - -A demonstration of calling 0x smart contracts from Python. - -Read the [documentation](http://0x-contract-demo-py.s3-website-us-east-1.amazonaws.com/) - -## Contributing - -We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository. - -Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started. - -### Install Code and Dependencies - -Ensure that you have installed Python >=3.6 and Docker. Then: - -```bash -pip install -e .[dev] -``` - -### Test - -Tests depend on a running ganache instance with the 0x contracts deployed in it. For convenience, a docker container is provided that has ganache-cli and a snapshot containing the necessary contracts. A shortcut is provided to run that docker container: `./setup.py ganache`. With that running, the tests can be run with `./setup.py test`. - -### Clean - -`./setup.py clean --all` - -### Lint - -`./setup.py lint` - -### Build Documentation - -`./setup.py build_sphinx` - -### More - -See `./setup.py --help-commands` for more info. diff --git a/python-packages/contract_demo/setup.py b/python-packages/contract_demo/setup.py deleted file mode 100755 index a7afbd30c8..0000000000 --- a/python-packages/contract_demo/setup.py +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env python - -"""setuptools module for 0x-contract-demo package.""" - -import distutils.command.build_py -from distutils.command.clean import clean -import subprocess # nosec -from shutil import rmtree -from os import environ, path -from sys import argv - -from setuptools import setup -from setuptools.command.test import test as TestCommand - - -class TestCommandExtension(TestCommand): - """Run pytest tests.""" - - def run_tests(self): - """Invoke pytest.""" - import pytest - - exit(pytest.main()) - - -class LintCommand(distutils.command.build_py.build_py): - """Custom setuptools command class for running linters.""" - - description = "Run linters" - - def run(self): - """Run linter shell commands.""" - lint_commands = [ - # formatter: - "black --line-length 79 --check --diff test setup.py".split(), - # style guide checker (formerly pep8): - "pycodestyle test setup.py".split(), - # docstring style checker: - "pydocstyle test setup.py".split(), - # static type checker: - "mypy test setup.py".split(), - # security issue checker: - "bandit -r ./setup.py".split(), - # general linter: - "pylint test setup.py".split(), - # pylint takes relatively long to run, so it runs last, to enable - # fast failures. - ] - - # tell mypy where to find interface stubs for 3rd party libs - environ["MYPYPATH"] = path.join( - path.dirname(path.realpath(argv[0])), "stubs" - ) - - for lint_command in lint_commands: - print( - "Running lint command `", " ".join(lint_command).strip(), "`" - ) - subprocess.check_call(lint_command) # nosec - - -class CleanCommandExtension(clean): - """Custom command to do custom cleanup.""" - - def run(self): - """Run the regular clean, followed by our custom commands.""" - super().run() - rmtree(".mypy_cache", ignore_errors=True) - rmtree(".tox", ignore_errors=True) - rmtree(".pytest_cache", ignore_errors=True) - - -class GanacheCommand(distutils.command.build_py.build_py): - """Custom command to publish to pypi.org.""" - - description = "Run ganache daemon to support tests." - - def run(self): - """Run ganache.""" - cmd_line = "docker run -d -p 8545:8545 0xorg/ganache-cli:2.2.2".split() - subprocess.call(cmd_line) # nosec - - -class PublishDocsCommand(distutils.command.build_py.build_py): - """Custom command to publish docs to S3.""" - - description = ( - "Publish docs to " - + "http://0x-contract-addresses-py.s3-website-us-east-1.amazonaws.com/" - ) - - def run(self): - """Run npm package `discharge` to build & upload docs.""" - subprocess.check_call("discharge deploy".split()) # nosec - - -setup( - name="0x-contract-demo", - version="1.0.0", - description="Demonstration of calling 0x contracts", - url=( - "https://github.com/0xProject/0x-monorepo/tree/development" - + "/python-packages/contract_demo" - ), - author="F. Eugene Aumson", - author_email="feuGeneA@users.noreply.github.com", - cmdclass={ - "clean": CleanCommandExtension, - "lint": LintCommand, - "test": TestCommandExtension, - "ganache": GanacheCommand, - "publish_docs": PublishDocsCommand, - }, - install_requires=[ - "0x-contract-addresses", - "0x-contract-artifacts", - "0x-order-utils", - "0x-web3", # TEMPORARY! pending resolution of our web3.py PR#1147 - "mypy_extensions", - ], - extras_require={ - "dev": [ - "bandit", - "black", - "coverage", - "coveralls", - "mypy", - "mypy_extensions", - "pycodestyle", - "pydocstyle", - "pylint", - "pytest", - "sphinx", - "tox", - ] - }, - python_requires=">=3.6, <4", - license="Apache 2.0", - zip_safe=False, # required per mypy - command_options={ - "build_sphinx": { - "source_dir": ("setup.py", "test"), - "build_dir": ("setup.py", "build/docs"), - } - }, -) diff --git a/python-packages/contract_demo/stubs/command/__init__.pyi b/python-packages/contract_demo/stubs/command/__init__.pyi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/python-packages/contract_demo/stubs/command/clean.pyi b/python-packages/contract_demo/stubs/command/clean.pyi deleted file mode 100644 index 46a42ddb13..0000000000 --- a/python-packages/contract_demo/stubs/command/clean.pyi +++ /dev/null @@ -1,7 +0,0 @@ -from distutils.core import Command - -class clean(Command): - def initialize_options(self: clean) -> None: ... - def finalize_options(self: clean) -> None: ... - def run(self: clean) -> None: ... - ... diff --git a/python-packages/contract_demo/stubs/distutils/__init__.pyi b/python-packages/contract_demo/stubs/distutils/__init__.pyi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/python-packages/contract_demo/stubs/distutils/command/__init__.pyi b/python-packages/contract_demo/stubs/distutils/command/__init__.pyi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/python-packages/contract_demo/stubs/distutils/command/clean.pyi b/python-packages/contract_demo/stubs/distutils/command/clean.pyi deleted file mode 100644 index 46a42ddb13..0000000000 --- a/python-packages/contract_demo/stubs/distutils/command/clean.pyi +++ /dev/null @@ -1,7 +0,0 @@ -from distutils.core import Command - -class clean(Command): - def initialize_options(self: clean) -> None: ... - def finalize_options(self: clean) -> None: ... - def run(self: clean) -> None: ... - ... diff --git a/python-packages/contract_demo/stubs/eth_utils/__init__.pyi b/python-packages/contract_demo/stubs/eth_utils/__init__.pyi deleted file mode 100644 index 4a83338cad..0000000000 --- a/python-packages/contract_demo/stubs/eth_utils/__init__.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from typing import Union - -def to_checksum_address(value: Union[str, bytes]) -> str: - ... diff --git a/python-packages/contract_demo/stubs/pytest/__init__.pyi b/python-packages/contract_demo/stubs/pytest/__init__.pyi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/python-packages/contract_demo/stubs/setuptools/__init__.pyi b/python-packages/contract_demo/stubs/setuptools/__init__.pyi deleted file mode 100644 index 8ea8d32b7e..0000000000 --- a/python-packages/contract_demo/stubs/setuptools/__init__.pyi +++ /dev/null @@ -1,8 +0,0 @@ -from distutils.dist import Distribution -from typing import Any, List - -def setup(**attrs: Any) -> Distribution: ... - -class Command: ... - -def find_packages(where: str) -> List[str]: ... diff --git a/python-packages/contract_demo/stubs/setuptools/command/__init__.pyi b/python-packages/contract_demo/stubs/setuptools/command/__init__.pyi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/python-packages/contract_demo/stubs/setuptools/command/test.pyi b/python-packages/contract_demo/stubs/setuptools/command/test.pyi deleted file mode 100644 index c5ec770ad3..0000000000 --- a/python-packages/contract_demo/stubs/setuptools/command/test.pyi +++ /dev/null @@ -1,3 +0,0 @@ -from setuptools import Command - -class test(Command): ... diff --git a/python-packages/contract_demo/stubs/web3/__init__.pyi b/python-packages/contract_demo/stubs/web3/__init__.pyi deleted file mode 100644 index 21482d598a..0000000000 --- a/python-packages/contract_demo/stubs/web3/__init__.pyi +++ /dev/null @@ -1,2 +0,0 @@ -class Web3: - ... diff --git a/python-packages/contract_demo/stubs/web3/utils/__init__.pyi b/python-packages/contract_demo/stubs/web3/utils/__init__.pyi deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/python-packages/contract_demo/stubs/web3/utils/datatypes.pyi b/python-packages/contract_demo/stubs/web3/utils/datatypes.pyi deleted file mode 100644 index 70baff3728..0000000000 --- a/python-packages/contract_demo/stubs/web3/utils/datatypes.pyi +++ /dev/null @@ -1,3 +0,0 @@ -class Contract: - def call(self): ... - ... diff --git a/python-packages/contract_demo/test/__init__.py b/python-packages/contract_demo/test/__init__.py deleted file mode 100644 index 600f143bf1..0000000000 --- a/python-packages/contract_demo/test/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Demonstrations of calling 0x smart contracts.""" diff --git a/python-packages/contract_demo/test/test_exchange.py b/python-packages/contract_demo/test/test_exchange.py deleted file mode 100644 index e47fcc78fd..0000000000 --- a/python-packages/contract_demo/test/test_exchange.py +++ /dev/null @@ -1,117 +0,0 @@ -"""Test calling methods on the Exchange contract.""" - -from eth_utils import to_checksum_address -from web3 import Web3 -from web3.utils import datatypes - -from zero_ex.contract_addresses import NETWORK_TO_ADDRESSES, NetworkId -import zero_ex.contract_artifacts -from zero_ex.json_schemas import assert_valid -from zero_ex.order_utils import ( - Order, - OrderInfo, - order_to_jsdict, - generate_order_hash_hex, -) - - -def test_get_order_info(): - """Demonstrate Exchange.getOrderInfo().""" - order: Order = { - "makerAddress": "0x0000000000000000000000000000000000000000", - "takerAddress": "0x0000000000000000000000000000000000000000", - "feeRecipientAddress": "0x0000000000000000000000000000000000000000", - "senderAddress": "0x0000000000000000000000000000000000000000", - "makerAssetAmount": 1000000000000000000, - "takerAssetAmount": 1000000000000000000, - "makerFee": 0, - "takerFee": 0, - "expirationTimeSeconds": 12345, - "salt": 12345, - "makerAssetData": (b"\x00") * 20, - "takerAssetData": (b"\x00") * 20, - } - - web3_instance = Web3(Web3.HTTPProvider("http://127.0.0.1:8545")) - - # false positive from pylint: disable=no-member - contract_address = NETWORK_TO_ADDRESSES[ - NetworkId(int(web3_instance.net.version)) - ].exchange - - assert_valid( - order_to_jsdict(order, exchange_address=contract_address), - "/orderSchema", - ) - - # false positive from pylint: disable=no-member - exchange: datatypes.Contract = web3_instance.eth.contract( - address=to_checksum_address(contract_address), - abi=zero_ex.contract_artifacts.abi_by_name("Exchange"), - ) - - order_info = OrderInfo(*exchange.call().getOrderInfo(order)) - - assert isinstance(order_info.order_status, int) - assert order_info.order_status == 4 - - assert isinstance(order_info.order_hash, bytes) - assert order_info.order_hash.hex() == generate_order_hash_hex( - order, - exchange_address=NETWORK_TO_ADDRESSES[NetworkId.GANACHE].exchange, - ) - - assert isinstance(order_info.order_taker_asset_filled_amount, int) - assert order_info.order_taker_asset_filled_amount == 0 - - -def test_get_orders_info(): - """Demonstrate Exchange.getOrderInfo().""" - order: Order = { - "makerAddress": "0x0000000000000000000000000000000000000000", - "takerAddress": "0x0000000000000000000000000000000000000000", - "feeRecipientAddress": "0x0000000000000000000000000000000000000000", - "senderAddress": "0x0000000000000000000000000000000000000000", - "makerAssetAmount": 1000000000000000000, - "takerAssetAmount": 1000000000000000000, - "makerFee": 0, - "takerFee": 0, - "expirationTimeSeconds": 12345, - "salt": 12345, - "makerAssetData": (b"\x00") * 20, - "takerAssetData": (b"\x00") * 20, - } - - web3_instance = Web3(Web3.HTTPProvider("http://127.0.0.1:8545")) - - # false positive from pylint: disable=no-member - contract_address = NETWORK_TO_ADDRESSES[ - NetworkId(int(web3_instance.net.version)) - ].exchange - - assert_valid( - order_to_jsdict(order, exchange_address=contract_address), - "/orderSchema", - ) - - # false positive from pylint: disable=no-member - exchange: datatypes.Contract = web3_instance.eth.contract( - address=to_checksum_address(contract_address), - abi=zero_ex.contract_artifacts.abi_by_name("Exchange"), - ) - - orders_info = exchange.call().getOrdersInfo([order]) - - for order_info in orders_info: - order_info = OrderInfo(*order_info) - assert isinstance(order_info.order_status, int) - assert order_info.order_status == 4 - - assert isinstance(order_info.order_hash, bytes) - assert order_info.order_hash.hex() == generate_order_hash_hex( - order, - exchange_address=NETWORK_TO_ADDRESSES[NetworkId.GANACHE].exchange, - ) - - assert isinstance(order_info.order_taker_asset_filled_amount, int) - assert order_info.order_taker_asset_filled_amount == 0 diff --git a/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py b/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py index 10c564b99c..de7507016b 100644 --- a/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py +++ b/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py @@ -1,4 +1,31 @@ -"""JSON schemas and associated utilities.""" +"""JSON schemas and associated utilities. + +Validating a 0x Order +--------------------- + +Here is an example on how to validate a 0x order. + +>>> from zero_ex.json_schemas import assert_valid +>>> example_order = { +... 'makerAddress': '0x5409ed021d9299bf6814279a6a1411a7e866a631', +... 'takerAddress': '0x0000000000000000000000000000000000000000', +... 'senderAddress': '0x0000000000000000000000000000000000000000', +... 'exchangeAddress': '0x4f833a24e1f95d70f028921e27040ca56e09ab0b', +... 'feeRecipientAddress': +... '0x0000000000000000000000000000000000000000', +... 'makerAssetData': '0xf47261b0000000000000000000000000' +... 'c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', +... 'takerAssetData': '0xf47261b0000000000000000000000000' +... 'e41d2489571d322189246dafa5ebde1f4699f498', +... 'salt': 123456789, +... 'makerFee': 0, +... 'takerFee': 0, +... 'makerAssetAmount': 1000000000000000000, +... 'takerAssetAmount': 500000000000000000000, +... 'expirationTimeSeconds': 1553553429 +... } +>>> assert_valid(example_order, "/orderSchema") +""" from os import path import json diff --git a/python-packages/order_utils/src/zero_ex/order_utils/__init__.py b/python-packages/order_utils/src/zero_ex/order_utils/__init__.py index 39d4115077..c1fea8c21c 100644 --- a/python-packages/order_utils/src/zero_ex/order_utils/__init__.py +++ b/python-packages/order_utils/src/zero_ex/order_utils/__init__.py @@ -6,7 +6,55 @@ For local testing one may construct such a provider pointing at an instance of contracts deployed on it. For convenience, a docker container is provided for just this purpose. To start it: `docker run -d -p 8545:8545 0xorg/ganache-cli:2.2.2`:code:. -""" + +Creating a 0x Order +-------------------- + +Here is a short demonstration on how to create a 0x order. + +>>> import pprint +>>> from zero_ex.contract_addresses import ( +... NETWORK_TO_ADDRESSES, NetworkId) +>>> from zero_ex.order_utils import asset_data_utils, Order +>>> NULL_ADDRESS = "0x0000000000000000000000000000000000000000" +>>> my_address = "0x5409ed021d9299bf6814279a6a1411a7e866a631" +>>> exchange_address = NETWORK_TO_ADDRESSES[NetworkId.MAINNET].exchange +>>> weth_address = NETWORK_TO_ADDRESSES[NetworkId.MAINNET].ether_token +>>> zrx_address = NETWORK_TO_ADDRESSES[NetworkId.MAINNET].zrx_token +>>> maker_asset_data = ( +... asset_data_utils.encode_erc20_asset_data(weth_address)) +>>> taker_asset_data = ( +... asset_data_utils.encode_erc20_asset_data(zrx_address)) +>>> example_order: Order = { +... "makerAddress": my_address, +... "takerAddress": NULL_ADDRESS, +... "exchangeAddress": exchange_address, +... "senderAddress": NULL_ADDRESS, +... "feeRecipientAddress": NULL_ADDRESS, +... "makerAssetData": maker_asset_data, +... "takerAssetData": taker_asset_data, +... "salt": 123456789, +... "makerFee": 0, +... "takerFee": 0, +... "makerAssetAmount": 1 * 10 ** 18, # Converting token amount to base unit with 18 decimals +... "takerAssetAmount": 500 * 10 ** 18, # Converting token amount to base unit with 18 decimals +... "expirationTimeSeconds": 1553553429, +... } +>>> pprint.pprint(example_order) +{'exchangeAddress': '0x4f833a24e1f95d70f028921e27040ca56e09ab0b', + 'expirationTimeSeconds': 1553553429, + 'feeRecipientAddress': '0x0000000000000000000000000000000000000000', + 'makerAddress': '0x5409ed021d9299bf6814279a6a1411a7e866a631', + 'makerAssetAmount': 1000000000000000000, + 'makerAssetData': '0xf47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + 'makerFee': 0, + 'salt': 123456789, + 'senderAddress': '0x0000000000000000000000000000000000000000', + 'takerAddress': '0x0000000000000000000000000000000000000000', + 'takerAssetAmount': 500000000000000000000, + 'takerAssetData': '0xf47261b0000000000000000000000000e41d2489571d322189246dafa5ebde1f4699f498', + 'takerFee': 0} +""" # noqa E501 from copy import copy from enum import auto, Enum diff --git a/python-packages/sra_client/.pylintrc b/python-packages/sra_client/.pylintrc new file mode 100644 index 0000000000..ef108c01fc --- /dev/null +++ b/python-packages/sra_client/.pylintrc @@ -0,0 +1,4 @@ +[MESSAGES CONTROL] +disable=C0330,line-too-long,fixme,too-few-public-methods,too-many-ancestors +# C0330 is "bad hanging indent". we use indents per `black`. + diff --git a/python-packages/sra_client/CHANGELOG.json b/python-packages/sra_client/CHANGELOG.json index 7d6d2c4bb0..0016c0e04f 100644 --- a/python-packages/sra_client/CHANGELOG.json +++ b/python-packages/sra_client/CHANGELOG.json @@ -1,11 +1,22 @@ [ { - "timestamp": 1553491629, "version": "1.0.1", "changes": [ { - "note": "Fix regex validation on numeric values" + "note": "Fix regex validation on numeric values", + "pr": 1731 } - ] + ], + "timestamp": 1553491629 + }, + { + "version": "1.0.1", + "changes": [ + { + "note": "Added new devdependencies, and linting commands to `setup.py`. Added sphinx docs to demonstrate how to use sra_client.", + "pr": 1734 + } + ], + "timestamp": 1553183790 } ] diff --git a/python-packages/contract_demo/test/conf.py b/python-packages/sra_client/conf.py similarity index 89% rename from python-packages/contract_demo/test/conf.py rename to python-packages/sra_client/conf.py index 45ed4b2a53..3b6477c5de 100644 --- a/python-packages/contract_demo/test/conf.py +++ b/python-packages/sra_client/conf.py @@ -9,11 +9,11 @@ import pkg_resources # pylint: disable=invalid-name # because these variables are not named in upper case, as globals should be. -project = "0x-contract-demo" +project = "0x-sra-client" # pylint: disable=redefined-builtin copyright = "2018, ZeroEx, Intl." author = "F. Eugene Aumson" -version = pkg_resources.get_distribution("0x-contract-demo").version +version = pkg_resources.get_distribution("0x-sra-client").version release = "" # The full version, including alpha/beta/rc tags extensions = [ @@ -22,6 +22,7 @@ extensions = [ "sphinx.ext.intersphinx", "sphinx.ext.coverage", "sphinx.ext.viewcode", + "sphinx_autodoc_typehints", ] templates_path = ["doc_templates"] @@ -46,7 +47,7 @@ html_static_path = ["doc_static"] # so a file named "default.css" will overwrite the builtin "default.css". # Output file base name for HTML help builder. -htmlhelp_basename = "contract_demopydoc" +htmlhelp_basename = "sraclientpydoc" # -- Extension configuration: diff --git a/python-packages/contract_demo/test/doc_static/.gitkeep b/python-packages/sra_client/doc_static/.gitkeep similarity index 100% rename from python-packages/contract_demo/test/doc_static/.gitkeep rename to python-packages/sra_client/doc_static/.gitkeep diff --git a/python-packages/contract_demo/stubs/__init__.pyi b/python-packages/sra_client/doc_template/.gitkeep similarity index 100% rename from python-packages/contract_demo/stubs/__init__.pyi rename to python-packages/sra_client/doc_template/.gitkeep diff --git a/python-packages/contract_demo/test/index.rst b/python-packages/sra_client/index.rst similarity index 58% rename from python-packages/contract_demo/test/index.rst rename to python-packages/sra_client/index.rst index c546eccfa3..27c814b316 100644 --- a/python-packages/contract_demo/test/index.rst +++ b/python-packages/sra_client/index.rst @@ -1,13 +1,20 @@ .. source for the sphinx-generated build/docs/web/index.html -Python demo of 0x Smart Contracts -================================= +Python zero_ex.sra_client.api_client +==================================== .. toctree:: :maxdepth: 2 :caption: Contents: -.. automodule:: test.test_exchange +.. automodule:: sra_client + +---- + +API +--- + +.. automodule:: sra_client.api.default_api :members: Indices and tables diff --git a/python-packages/sra_client/setup.py b/python-packages/sra_client/setup.py index 0921149bd4..5d3c10d3c2 100755 --- a/python-packages/sra_client/setup.py +++ b/python-packages/sra_client/setup.py @@ -1,14 +1,16 @@ #!/usr/bin/env python # coding: utf-8 +"""setuptools module for sra_client package.""" -import subprocess +import subprocess # nosec import distutils.command.build_py from setuptools import setup, find_packages # noqa: H301 +from setuptools.command.test import test as TestCommand NAME = "0x-sra-client" -VERSION = "1.0.0" +VERSION = "1.0.1" # To install the library, run the following # # python setup.py install @@ -21,6 +23,17 @@ with open("README.md", "r") as file_handle: REQUIRES = ["urllib3 >= 1.15", "six >= 1.10", "certifi", "python-dateutil"] + +class TestCommandExtension(TestCommand): + """Run pytest tests.""" + + def run_tests(self): + """Invoke pytest.""" + import pytest + + exit(pytest.main(["--doctest-modules"])) + + class TestPublishCommand(distutils.command.build_py.build_py): """Custom command to publish to test.pypi.org.""" @@ -38,6 +51,59 @@ class TestPublishCommand(distutils.command.build_py.build_py): ) +class GanacheCommand(distutils.command.build_py.build_py): + """Custom command to publish to pypi.org.""" + + description = "Run ganache daemon to support tests." + + def run(self): + """Run ganache.""" + cmd_line = ( + "docker run -d -p 8545:8545 0xorg/ganache-cli:2.2.2" + ).split() + subprocess.call(cmd_line) # nosec + + +class LaunchKitCommand(distutils.command.build_py.build_py): + """Custom command to boot up a local 0x-launch-kit in docker.""" + + description = "Run launch-kit daemon to support sra_client demos." + + def run(self): + """Run 0x-launch-kit.""" + cmd_line = ("docker run -d -p 3000:3000 0xorg/launch-kit-ci").split() + subprocess.call(cmd_line) # nosec + + +class LintCommand(distutils.command.build_py.build_py): + """Custom setuptools command class for running linters.""" + + description = "Run linters" + + def run(self): + """Run linter shell commands.""" + lint_commands = [ + # formatter: + "black --line-length 79 --check --diff test sra_client/__init__.py setup.py".split(), # noqa: E501 (line too long) + # style guide checker (formerly pep8): + "pycodestyle test sra_client/__init__.py setup.py".split(), + # docstring style checker: + "pydocstyle src test sra_client/__init__.py setup.py".split(), + # static type checker: + "bandit -r test sra_client/__init__.py setup.py".split(), + # general linter: + "pylint test sra_client/__init__.py setup.py".split(), + # pylint takes relatively long to run, so it runs last, to enable + # fast failures. + ] + + for lint_command in lint_commands: + print( + "Running lint command `", " ".join(lint_command).strip(), "`" + ) + subprocess.check_call(lint_command) # nosec + + class PublishCommand(distutils.command.build_py.build_py): """Custom command to publish to pypi.org.""" @@ -48,13 +114,17 @@ class PublishCommand(distutils.command.build_py.build_py): subprocess.check_call("twine upload dist/*".split()) # nosec -class LintCommand(distutils.command.build_py.build_py): - """No-op lint command to support top-level lint script.""" +class PublishDocsCommand(distutils.command.build_py.build_py): + """Custom command to publish docs to S3.""" - description = "No-op" + description = ( + "Publish docs to " + + "http://0x-sra-demos-py.s3-website-us-east-1.amazonaws.com/" + ) def run(self): - pass + """Run npm package `discharge` to build & upload docs.""" + subprocess.check_call("discharge deploy".split()) # nosec setup( @@ -72,6 +142,33 @@ setup( cmdclass={ "test_publish": TestPublishCommand, "publish": PublishCommand, + "launch_kit": LaunchKitCommand, "lint": LintCommand, + "publish_docs": PublishDocsCommand, + "test": TestCommandExtension, + "ganache": GanacheCommand, + }, + extras_require={ + "dev": [ + "0x-contract-addresses", + "0x-order-utils", + "0x-web3", + "bandit", + "black", + "coverage", + "coveralls", + "pycodestyle", + "pydocstyle", + "pylint", + "pytest", + "sphinx", + "sphinx-autodoc-typehints", + ] + }, + command_options={ + "build_sphinx": { + "source_dir": ("setup.py", "."), + "build_dir": ("setup.py", "build/docs"), + } }, ) diff --git a/python-packages/sra_client/sra_client/__init__.py b/python-packages/sra_client/sra_client/__init__.py index fc02976a57..8f8bb79e8c 100644 --- a/python-packages/sra_client/sra_client/__init__.py +++ b/python-packages/sra_client/sra_client/__init__.py @@ -2,6 +2,167 @@ # flake8: noqa +"""Python api client to interact with SRA compatible 0x relayers. + +0x Protocol is an open standard. Many relayers opt-in to implementing a set of +`standard relayer API endpoints `_ +to make it easier for anyone to source liquidity that conforms to the 0x order format. +Here, we will show you how you can use our `sra_client +`_ +module to interact with 0x relayers that implements the Standard Relayer API. + +Setup +===== +Install the sra-client package with pip: + +`pip install 0x-sra-client`:code: + +To interact with a 0x Relayer, you need the HTTP endpoint of the Relayer you'd like to +connect to (i.e. https://api.radarrelay.com/0x/v2). + +For local testing one can use the `0x-launch-kit +`_ +to host orders locally. For convenience, a docker container is provided +for just this purpose. To start it: + +`docker run -d -p 3000:3000 0xorg/launch-kit-ci`:code: + +and then connect to the http server running at http://localhost:3000. + +---- + +Configure and create an API client instance +-------------------------------------------- + +>>> from sra_client import ApiClient, Configuration +>>> from sra_client.api import DefaultApi +>>> config = Configuration() +>>> config.host = "http://localhost:3000" +>>> relayer_api = DefaultApi(ApiClient(config)) + +Post Order +----------- +Post an order to an SRA-compliant Relayer. + +>>> from web3 import HTTPProvider, Web3 +>>> from zero_ex.contract_addresses import ( +... NETWORK_TO_ADDRESSES, NetworkId) +>>> from zero_ex.order_utils import ( +... asset_data_utils, +... generate_order_hash_hex, +... jsdict_order_to_struct, +... sign_hash) +>>> provider = HTTPProvider("http://localhost:8545") +>>> maker_address = "0x5409ed021d9299bf6814279a6a1411a7e866a631" +>>> exchange_address = NETWORK_TO_ADDRESSES[NetworkId.KOVAN].exchange +>>> weth_address = NETWORK_TO_ADDRESSES[NetworkId.KOVAN].ether_token +>>> zrx_address = NETWORK_TO_ADDRESSES[NetworkId.KOVAN].zrx_token +>>> weth_asset_data = asset_data_utils.encode_erc20_asset_data(weth_address) +>>> zrx_asset_data = asset_data_utils.encode_erc20_asset_data(zrx_address) +>>> example_order = { +... "makerAddress": maker_address, +... "takerAddress": "0x0000000000000000000000000000000000000000", +... "senderAddress": "0x0000000000000000000000000000000000000000", +... "exchangeAddress": exchange_address, +... "feeRecipientAddress": +... "0x0000000000000000000000000000000000000000", +... "makerAssetData": weth_asset_data, +... "takerAssetData": zrx_asset_data, +... "salt": "2362734632784682376287462", +... "makerFee": "0", +... "takerFee": "0", +... "makerAssetAmount": "1000000000000000000", +... "takerAssetAmount": "500000000000000000000", +... "expirationTimeSeconds": "999999999999999999999"} +>>> order_hash = generate_order_hash_hex( +... jsdict_order_to_struct(example_order), exchange_address) +>>> example_order["signature"] = sign_hash( +... provider, Web3.toChecksumAddress(maker_address), order_hash) +>>> relayer_api.post_order_with_http_info( +... network_id=42, signed_order_schema=example_order)[1] +200 + +Get Orders +----------- +Get orders from an SRA-compliant Relayer. + +>>> relayer_api.get_orders() +{'records': [{'meta_data': {}, + 'order': {'exchange_address': '0x35dd2932454449b14cee11a94d3674a936d5d7b2', + 'expiration_time_seconds': '1000000000000000000000', + 'fee_recipient_address': '0x0000000000000000000000000000000000000000', + 'maker_address': '0x5409ed021d9299bf6814279a6a1411a7e866a631', + 'maker_asset_amount': '1000000000000000000', + 'maker_asset_data': '0xf47261b0000000000000000000000000d0a1e359811322d97991e03f863a0c30c2cf029c', + 'maker_fee': '0', + 'salt': '2362734632784682376287462', + 'sender_address': '0x0000000000000000000000000000000000000000', + 'taker_address': '0x0000000000000000000000000000000000000000', + 'taker_asset_amount': '500000000000000000000', + 'taker_asset_data': '0xf47261b00000000000000000000000002002d3812f58e35f0ea1ffbf80a75a38c32175fa', + 'taker_fee': '0'}}]} + +Get Order +--------- +Get an order by hash from an SRA-compliant Relayer. + +>>> relayer_api.get_order(order_hash) # doctest: +SKIP +{'meta_data': {}, +'order': {'exchange_address': '0x35dd2932454449b14cee11a94d3674a936d5d7b2', + 'expiration_time_seconds': '1000000000000000000000', + 'fee_recipient_address': '0x0000000000000000000000000000000000000000', + 'maker_address': '0x5409ed021d9299bf6814279a6a1411a7e866a631', + 'maker_asset_amount': '1000000000000000000', + 'maker_asset_data': '0xf47261b0000000000000000000000000d0a1e359811322d97991e03f863a0c30c2cf029c', + 'maker_fee': '0', + 'salt': '2362734632784682376287462', + 'sender_address': '0x0000000000000000000000000000000000000000', + 'taker_address': '0x0000000000000000000000000000000000000000', + 'taker_asset_amount': '500000000000000000000', + 'taker_asset_data': '0xf47261b00000000000000000000000002002d3812f58e35f0ea1ffbf80a75a38c32175fa', + 'taker_fee': '0'}}, + +Get Asset Pair +--------------- +Get available asset pairs from an SRA-compliant Relayer. + +>>> relayer_api.get_asset_pairs() +{'records': [{'assetDataA': {'assetData': '0xf47261b0000000000000000000000000d0a1e359811322d97991e03f863a0c30c2cf029c', + 'maxAmount': '115792089237316195423570985008687907853269984665640564039457584007913129639936', + 'minAmount': '0', + 'precision': 18}, + 'assetDataB': {'assetData': '0xf47261b00000000000000000000000002002d3812f58e35f0ea1ffbf80a75a38c32175fa', + 'maxAmount': '115792089237316195423570985008687907853269984665640564039457584007913129639936', + 'minAmount': '0', + 'precision': 18}}]} + +Get Orderbook +------------- +Get the orderbook for the WETH/ZRX asset pair from an SRA-compliant Relayer. + +>>> relayer_api.get_orderbook( +... base_asset_data=weth_asset_data, +... quote_asset_data=zrx_asset_data) +{'asks': {'records': [{'meta_data': {}, + 'order': {'exchange_address': '0x35dd2932454449b14cee11a94d3674a936d5d7b2', + 'expiration_time_seconds': '1000000000000000000000', + 'fee_recipient_address': '0x0000000000000000000000000000000000000000', + 'maker_address': '0x5409ed021d9299bf6814279a6a1411a7e866a631', + 'maker_asset_amount': '1000000000000000000', + 'maker_asset_data': '0xf47261b0000000000000000000000000d0a1e359811322d97991e03f863a0c30c2cf029c', + 'maker_fee': '0', + 'salt': '2362734632784682376287462', + 'sender_address': '0x0000000000000000000000000000000000000000', + 'taker_address': '0x0000000000000000000000000000000000000000', + 'taker_asset_amount': '500000000000000000000', + 'taker_asset_data': '0xf47261b00000000000000000000000002002d3812f58e35f0ea1ffbf80a75a38c32175fa', + 'taker_fee': '0'}}]}, + 'bids': {'records': []}} +""" # noqa: E501 (line too long) + +# NOTE: Bug in get_order method. +# Sra_client not deserialzing order from server properly, need fix! + from __future__ import absolute_import @@ -28,7 +189,7 @@ from sra_client.models.relayer_api_asset_data_trade_info_schema import ( from sra_client.models.relayer_api_error_response_schema import ( RelayerApiErrorResponseSchema, ) -from sra_client.models.relayer_api_error_response_schema_validation_errors import ( +from sra_client.models.relayer_api_error_response_schema_validation_errors import ( # noqa: E501 (line too long) RelayerApiErrorResponseSchemaValidationErrors, ) from sra_client.models.relayer_api_fee_recipients_response_schema import ( @@ -44,7 +205,7 @@ from sra_client.models.relayer_api_order_schema import RelayerApiOrderSchema from sra_client.models.relayer_api_orderbook_response_schema import ( RelayerApiOrderbookResponseSchema, ) -from sra_client.models.relayer_api_orders_channel_subscribe_payload_schema import ( +from sra_client.models.relayer_api_orders_channel_subscribe_payload_schema import ( # noqa: E501 (line too long) RelayerApiOrdersChannelSubscribePayloadSchema, ) from sra_client.models.relayer_api_orders_channel_subscribe_schema import ( diff --git a/python-packages/sra_client/sra_client/api/default_api.py b/python-packages/sra_client/sra_client/api/default_api.py index 2d65db6095..4e1fac032b 100644 --- a/python-packages/sra_client/sra_client/api/default_api.py +++ b/python-packages/sra_client/sra_client/api/default_api.py @@ -9,66 +9,74 @@ import re # noqa: F401 import six from sra_client.api_client import ApiClient +from sra_client.models.relayer_api_order_config_payload_schema import ( + RelayerApiOrderConfigPayloadSchema, +) class DefaultApi(object): - """NOTE: This class is auto generated by OpenAPI Generator - Ref: https://openapi-generator.tech + """Default API for SRA compliant 0x relayers.""" - Do not edit the class manually. - """ + # NOTE: This class is auto generated by OpenAPI Generator + # Ref: https://openapi-generator.tech + + # Do not edit the class manually. def __init__(self, api_client=None): if api_client is None: api_client = ApiClient() self.api_client = api_client - def get_asset_pairs(self, **kwargs): # noqa: E501 - """get_asset_pairs # noqa: E501 + def get_asset_pairs(self, **kwargs): + """get_asset_pairs - Retrieves a list of available asset pairs and the information required to trade them (in any order). Setting only `assetDataA` or `assetDataB` returns pairs filtered by that asset only. # noqa: E501 + Retrieves a list of available asset pairs and the information + required to trade them (in any order). Setting only `assetDataA` or + `assetDataB` returns pairs filtered by that asset only. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_asset_pairs(async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool + >>> thread = api.get_asset_pairs(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. :param str asset_data_a: The assetData value for the first asset in the pair. :param str asset_data_b: The assetData value for the second asset in the pair. :param float network_id: The id of the Ethereum network :param float page: The number of the page to request in the collection. :param float per_page: The number of records to return per page. - :return: RelayerApiAssetDataPairsResponseSchema - If the method is called asynchronously, - returns the request thread. + + :return: :class:`RelayerApiAssetDataPairsResponseSchema`. + If the method is called asynchronously returns the request thread. """ kwargs["_return_http_data_only"] = True if kwargs.get("async_req"): - return self.get_asset_pairs_with_http_info(**kwargs) # noqa: E501 + return self.get_asset_pairs_with_http_info(**kwargs) else: - (data) = self.get_asset_pairs_with_http_info( - **kwargs - ) # noqa: E501 + (data) = self.get_asset_pairs_with_http_info(**kwargs) return data - def get_asset_pairs_with_http_info(self, **kwargs): # noqa: E501 - """get_asset_pairs # noqa: E501 + def get_asset_pairs_with_http_info(self, **kwargs): + """get_asset_pairs - Retrieves a list of available asset pairs and the information required to trade them (in any order). Setting only `assetDataA` or `assetDataB` returns pairs filtered by that asset only. # noqa: E501 + Retrieves a list of available asset pairs and the information + required to trade them (in any order). Setting only `assetDataA` or + `assetDataB` returns pairs filtered by that asset only. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_asset_pairs_with_http_info(async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool + >>> thread = api.get_asset_pairs_with_http_info(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. :param str asset_data_a: The assetData value for the first asset in the pair. :param str asset_data_b: The assetData value for the second asset in the pair. :param float network_id: The id of the Ethereum network :param float page: The number of the page to request in the collection. :param float per_page: The number of records to return per page. - :return: RelayerApiAssetDataPairsResponseSchema - If the method is called asynchronously, - returns the request thread. + + :return: :class:`RelayerApiAssetDataPairsResponseSchema`. + If the method is called asynchronously returns the request thread. """ local_var_params = locals() @@ -79,7 +87,7 @@ class DefaultApi(object): "network_id", "page", "per_page", - ] # noqa: E501 + ] all_params.append("async_req") all_params.append("_return_http_data_only") all_params.append("_preload_content") @@ -102,23 +110,17 @@ class DefaultApi(object): if "asset_data_a" in local_var_params: query_params.append( ("assetDataA", local_var_params["asset_data_a"]) - ) # noqa: E501 + ) if "asset_data_b" in local_var_params: query_params.append( ("assetDataB", local_var_params["asset_data_b"]) - ) # noqa: E501 + ) if "network_id" in local_var_params: - query_params.append( - ("networkId", local_var_params["network_id"]) - ) # noqa: E501 + query_params.append(("networkId", local_var_params["network_id"])) if "page" in local_var_params: - query_params.append( - ("page", local_var_params["page"]) - ) # noqa: E501 + query_params.append(("page", local_var_params["page"])) if "per_page" in local_var_params: - query_params.append( - ("perPage", local_var_params["per_page"]) - ) # noqa: E501 + query_params.append(("perPage", local_var_params["per_page"])) header_params = {} @@ -129,10 +131,10 @@ class DefaultApi(object): # HTTP header `Accept` header_params["Accept"] = self.api_client.select_header_accept( ["application/json"] - ) # noqa: E501 + ) # Authentication setting - auth_settings = [] # noqa: E501 + auth_settings = [] return self.api_client.call_api( "/v2/asset_pairs", @@ -143,66 +145,66 @@ class DefaultApi(object): body=body_params, post_params=form_params, files=local_var_files, - response_type="RelayerApiAssetDataPairsResponseSchema", # noqa: E501 + response_type="RelayerApiAssetDataPairsResponseSchema", auth_settings=auth_settings, async_req=local_var_params.get("async_req"), _return_http_data_only=local_var_params.get( "_return_http_data_only" - ), # noqa: E501 + ), _preload_content=local_var_params.get("_preload_content", True), _request_timeout=local_var_params.get("_request_timeout"), collection_formats=collection_formats, ) - def get_fee_recipients(self, **kwargs): # noqa: E501 - """get_fee_recipients # noqa: E501 + def get_fee_recipients(self, **kwargs): + """get_fee_recipients - Retrieves a collection of all fee recipient addresses for a relayer. This endpoint should be [paginated](#section/Pagination). # noqa: E501 + Retrieves a collection of all fee recipient addresses for a relayer. + This endpoint should be paginated. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_fee_recipients(async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool + >>> thread = api.get_fee_recipients(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. :param float network_id: The id of the Ethereum network :param float page: The number of the page to request in the collection. :param float per_page: The number of records to return per page. - :return: RelayerApiFeeRecipientsResponseSchema - If the method is called asynchronously, - returns the request thread. + + :return: :class:`RelayerApiFeeRecipientsResponseSchema`. + If the method is called asynchronously, returns the request thread. """ kwargs["_return_http_data_only"] = True if kwargs.get("async_req"): - return self.get_fee_recipients_with_http_info( - **kwargs - ) # noqa: E501 + return self.get_fee_recipients_with_http_info(**kwargs) else: - (data) = self.get_fee_recipients_with_http_info( - **kwargs - ) # noqa: E501 + (data) = self.get_fee_recipients_with_http_info(**kwargs) return data - def get_fee_recipients_with_http_info(self, **kwargs): # noqa: E501 - """get_fee_recipients # noqa: E501 + def get_fee_recipients_with_http_info(self, **kwargs): + """get_fee_recipients - Retrieves a collection of all fee recipient addresses for a relayer. This endpoint should be [paginated](#section/Pagination). # noqa: E501 + Retrieves a collection of all fee recipient addresses for a relayer. + This endpoint should be paginated. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_fee_recipients_with_http_info(async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool + >>> thread = api.get_fee_recipients_with_http_info(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. :param float network_id: The id of the Ethereum network :param float page: The number of the page to request in the collection. :param float per_page: The number of records to return per page. - :return: RelayerApiFeeRecipientsResponseSchema - If the method is called asynchronously, - returns the request thread. + + :return: :class:`RelayerApiFeeRecipientsResponseSchema`. + If the method is called asynchronously, returns the request thread. """ local_var_params = locals() - all_params = ["network_id", "page", "per_page"] # noqa: E501 + all_params = ["network_id", "page", "per_page"] all_params.append("async_req") all_params.append("_return_http_data_only") all_params.append("_preload_content") @@ -223,17 +225,11 @@ class DefaultApi(object): query_params = [] if "network_id" in local_var_params: - query_params.append( - ("networkId", local_var_params["network_id"]) - ) # noqa: E501 + query_params.append(("networkId", local_var_params["network_id"])) if "page" in local_var_params: - query_params.append( - ("page", local_var_params["page"]) - ) # noqa: E501 + query_params.append(("page", local_var_params["page"])) if "per_page" in local_var_params: - query_params.append( - ("perPage", local_var_params["per_page"]) - ) # noqa: E501 + query_params.append(("perPage", local_var_params["per_page"])) header_params = {} @@ -244,10 +240,10 @@ class DefaultApi(object): # HTTP header `Accept` header_params["Accept"] = self.api_client.select_header_accept( ["application/json"] - ) # noqa: E501 + ) # Authentication setting - auth_settings = [] # noqa: E501 + auth_settings = [] return self.api_client.call_api( "/v2/fee_recipients", @@ -258,64 +254,62 @@ class DefaultApi(object): body=body_params, post_params=form_params, files=local_var_files, - response_type="RelayerApiFeeRecipientsResponseSchema", # noqa: E501 + response_type="RelayerApiFeeRecipientsResponseSchema", auth_settings=auth_settings, async_req=local_var_params.get("async_req"), _return_http_data_only=local_var_params.get( "_return_http_data_only" - ), # noqa: E501 + ), _preload_content=local_var_params.get("_preload_content", True), _request_timeout=local_var_params.get("_request_timeout"), collection_formats=collection_formats, ) - def get_order(self, order_hash, **kwargs): # noqa: E501 - """get_order # noqa: E501 + def get_order(self, order_hash, **kwargs): + """get_order - Retrieves the 0x order with meta info that is associated with the hash. # noqa: E501 + Retrieves the 0x order with meta info that is associated with the hash. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_order(order_hash, async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool + >>> thread = api.get_order(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. :param str order_hash: The hash of the desired 0x order. (required) :param float network_id: The id of the Ethereum network - :return: RelayerApiOrderSchema - If the method is called asynchronously, - returns the request thread. + + :return: :class:`RelayerApiOrderSchema`. + If the method is called asynchronously, returns the request thread. """ kwargs["_return_http_data_only"] = True if kwargs.get("async_req"): - return self.get_order_with_http_info( - order_hash, **kwargs - ) # noqa: E501 + return self.get_order_with_http_info(order_hash, **kwargs) else: - (data) = self.get_order_with_http_info( - order_hash, **kwargs - ) # noqa: E501 + (data) = self.get_order_with_http_info(order_hash, **kwargs) return data - def get_order_with_http_info(self, order_hash, **kwargs): # noqa: E501 - """get_order # noqa: E501 + def get_order_with_http_info(self, order_hash, **kwargs): + """get_order - Retrieves the 0x order with meta info that is associated with the hash. # noqa: E501 + Retrieves the 0x order with meta info that is associated with the hash. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_order_with_http_info(order_hash, async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool + >>> thread = api.get_order_with_http_info(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. :param str order_hash: The hash of the desired 0x order. (required) :param float network_id: The id of the Ethereum network - :return: RelayerApiOrderSchema - If the method is called asynchronously, - returns the request thread. + + :return: :class:`RelayerApiOrderSchema`. + If the method is called asynchronously returns the request thread. """ local_var_params = locals() - all_params = ["order_hash", "network_id"] # noqa: E501 + all_params = ["order_hash", "network_id"] all_params.append("async_req") all_params.append("_return_http_data_only") all_params.append("_preload_content") @@ -336,21 +330,17 @@ class DefaultApi(object): ): raise ValueError( "Missing the required parameter `order_hash` when calling `get_order`" - ) # noqa: E501 + ) collection_formats = {} path_params = {} if "order_hash" in local_var_params: - path_params["orderHash"] = local_var_params[ - "order_hash" - ] # noqa: E501 + path_params["orderHash"] = local_var_params["order_hash"] query_params = [] if "network_id" in local_var_params: - query_params.append( - ("networkId", local_var_params["network_id"]) - ) # noqa: E501 + query_params.append(("networkId", local_var_params["network_id"])) header_params = {} @@ -361,10 +351,10 @@ class DefaultApi(object): # HTTP header `Accept` header_params["Accept"] = self.api_client.select_header_accept( ["application/json"] - ) # noqa: E501 + ) # Authentication setting - auth_settings = [] # noqa: E501 + auth_settings = [] return self.api_client.call_api( "/v2/order/{orderHash}", @@ -375,65 +365,84 @@ class DefaultApi(object): body=body_params, post_params=form_params, files=local_var_files, - response_type="RelayerApiOrderSchema", # noqa: E501 + response_type="RelayerApiOrderSchema", auth_settings=auth_settings, async_req=local_var_params.get("async_req"), _return_http_data_only=local_var_params.get( "_return_http_data_only" - ), # noqa: E501 + ), _preload_content=local_var_params.get("_preload_content", True), _request_timeout=local_var_params.get("_request_timeout"), collection_formats=collection_formats, ) - def get_order_config(self, **kwargs): # noqa: E501 - """get_order_config # noqa: E501 + def get_order_config(self, **kwargs): + """get_order_config - Relayers have full discretion over the orders that they are willing to host on their orderbooks (e.g what fees they charge, etc...). In order for traders to discover their requirements programmatically, they can send an incomplete order to this endpoint and receive the missing fields, specifc to that order. This gives relayers a large amount of flexibility to tailor fees to unique traders, trading pairs and volume amounts. Submit a partial order and receive information required to complete the order: `senderAddress`, `feeRecipientAddress`, `makerFee`, `takerFee`. # noqa: E501 + Relayers have full discretion over the orders that they are willing + to host on their orderbooks (e.g what fees they charge, etc...). In + order for traders to discover their requirements programmatically, + they can send an incomplete order to this endpoint and receive the + missing fields, specifc to that order. This gives relayers a large + amount of flexibility to tailor fees to unique traders, trading pairs + and volume amounts. Submit a partial order and receive information + required to complete the order: `senderAddress`, + `feeRecipientAddress`, `makerFee`, `takerFee`. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_order_config(async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool + >>> thread = api.get_order_config(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. :param float network_id: The id of the Ethereum network - :param RelayerApiOrderConfigPayloadSchema relayer_api_order_config_payload_schema: The fields of a 0x order the relayer may want to decide what configuration to send back. - :return: RelayerApiOrderConfigResponseSchema - If the method is called asynchronously, - returns the request thread. + :param relayer_api_order_config_payload_schema: instance of + :class:`RelayerApiOrderConfigPayloadSchema`. The fields of a 0x + order the relayer may want to decide what configuration to send + back. + + :return: :class:`RelayerApiOrderConfigResponseSchema`. + If the method is called asynchronously returns the request thread. """ kwargs["_return_http_data_only"] = True if kwargs.get("async_req"): - return self.get_order_config_with_http_info(**kwargs) # noqa: E501 + return self.get_order_config_with_http_info(**kwargs) else: - (data) = self.get_order_config_with_http_info( - **kwargs - ) # noqa: E501 + (data) = self.get_order_config_with_http_info(**kwargs) return data - def get_order_config_with_http_info(self, **kwargs): # noqa: E501 - """get_order_config # noqa: E501 + def get_order_config_with_http_info(self, **kwargs): + """get_order_config - Relayers have full discretion over the orders that they are willing to host on their orderbooks (e.g what fees they charge, etc...). In order for traders to discover their requirements programmatically, they can send an incomplete order to this endpoint and receive the missing fields, specifc to that order. This gives relayers a large amount of flexibility to tailor fees to unique traders, trading pairs and volume amounts. Submit a partial order and receive information required to complete the order: `senderAddress`, `feeRecipientAddress`, `makerFee`, `takerFee`. # noqa: E501 + Relayers have full discretion over the orders that they are willing + to host on their orderbooks (e.g what fees they charge, etc...). In + order for traders to discover their requirements programmatically, + they can send an incomplete order to this endpoint and receive the + missing fields, specifc to that order. This gives relayers a large + amount of flexibility to tailor fees to unique traders, trading pairs + and volume amounts. Submit a partial order and receive information + required to complete the order: `senderAddress`, + `feeRecipientAddress`, `makerFee`, `takerFee`. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_order_config_with_http_info(async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool + >>> thread = api.get_order_config_with_http_info(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. :param float network_id: The id of the Ethereum network - :param RelayerApiOrderConfigPayloadSchema relayer_api_order_config_payload_schema: The fields of a 0x order the relayer may want to decide what configuration to send back. - :return: RelayerApiOrderConfigResponseSchema - If the method is called asynchronously, - returns the request thread. + :param relayer_api_order_config_payload_schema: instance of + :class: `RelayerApiOrderConfigPayloadSchema`. The fields of a 0x + order the relayer may want to decide what configuration to send + back. + + :return: :class:`RelayerApiOrderConfigResponseSchema`. + If the method is called asynchronously returns the request thread. """ local_var_params = locals() - all_params = [ - "network_id", - "relayer_api_order_config_payload_schema", - ] # noqa: E501 + all_params = ["network_id", "relayer_api_order_config_payload_schema"] all_params.append("async_req") all_params.append("_return_http_data_only") all_params.append("_preload_content") @@ -454,9 +463,7 @@ class DefaultApi(object): query_params = [] if "network_id" in local_var_params: - query_params.append( - ("networkId", local_var_params["network_id"]) - ) # noqa: E501 + query_params.append(("networkId", local_var_params["network_id"])) header_params = {} @@ -471,17 +478,15 @@ class DefaultApi(object): # HTTP header `Accept` header_params["Accept"] = self.api_client.select_header_accept( ["application/json"] - ) # noqa: E501 + ) # HTTP header `Content-Type` header_params[ "Content-Type" - ] = self.api_client.select_header_content_type( # noqa: E501 - ["application/json"] - ) # noqa: E501 + ] = self.api_client.select_header_content_type(["application/json"]) # Authentication setting - auth_settings = [] # noqa: E501 + auth_settings = [] return self.api_client.call_api( "/v2/order_config", @@ -492,69 +497,101 @@ class DefaultApi(object): body=body_params, post_params=form_params, files=local_var_files, - response_type="RelayerApiOrderConfigResponseSchema", # noqa: E501 + response_type="RelayerApiOrderConfigResponseSchema", auth_settings=auth_settings, async_req=local_var_params.get("async_req"), _return_http_data_only=local_var_params.get( "_return_http_data_only" - ), # noqa: E501 + ), _preload_content=local_var_params.get("_preload_content", True), _request_timeout=local_var_params.get("_request_timeout"), collection_formats=collection_formats, ) - def get_orderbook( - self, base_asset_data, quote_asset_data, **kwargs - ): # noqa: E501 - """get_orderbook # noqa: E501 + def get_orderbook(self, base_asset_data, quote_asset_data, **kwargs): + """get_orderbook - Retrieves the orderbook for a given asset pair. This endpoint should be [paginated](#section/Pagination). Bids will be sorted in descending order by price, and asks will be sorted in ascending order by price. Within the price sorted orders, the orders are further sorted by _taker fee price_ which is defined as the **takerFee** divided by **takerTokenAmount**. After _taker fee price_, orders are to be sorted by expiration in ascending order. The way pagination works for this endpoint is that the **page** and **perPage** query params apply to both `bids` and `asks` collections, and if `page` * `perPage` > `total` for a certain collection, the `records` for that collection should just be empty. # noqa: E501 + Retrieves the orderbook for a given asset pair. This endpoint should + be paginated. Bids will be sorted in + descending order by price, and asks will be sorted in ascending order + by price. Within the price sorted orders, the orders are further + sorted by **taker fee price** which is defined as the **takerFee** + divided by **takerTokenAmount**. After **taker fee price**, orders are + to be sorted by expiration in ascending order. The way pagination + works for this endpoint is that the **page** and **perPage** query + params apply to both `bids` and `asks` collections, and if `page` * + `perPage` = `total` for a certain collection, the `records` for that + collection should just be empty. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_orderbook(base_asset_data, quote_asset_data, async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool - :param str base_asset_data: assetData (makerAssetData or takerAssetData) designated as the base currency in the [currency pair calculation](https://en.wikipedia.org/wiki/Currency_pair) of price. (required) - :param str quote_asset_data: assetData (makerAssetData or takerAssetData) designated as the quote currency in the currency pair calculation of price (required). (required) + >>> thread = api.get_orderbook(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. + :param str base_asset_data: assetData (makerAssetData or + takerAssetData) designated as the base currency in the + `currency pair calculation + `__ + of price. (required) + :param str quote_asset_data: assetData (makerAssetData or + takerAssetData) designated as the quote currency in the currency + pair calculation of price. (required) :param float network_id: The id of the Ethereum network :param float page: The number of the page to request in the collection. :param float per_page: The number of records to return per page. - :return: RelayerApiOrderbookResponseSchema - If the method is called asynchronously, - returns the request thread. + + :return: :class:`RelayerApiOrderbookResponseSchema`. + If the method is called asynchronously, returns the request thread. """ kwargs["_return_http_data_only"] = True if kwargs.get("async_req"): return self.get_orderbook_with_http_info( base_asset_data, quote_asset_data, **kwargs - ) # noqa: E501 + ) else: (data) = self.get_orderbook_with_http_info( base_asset_data, quote_asset_data, **kwargs - ) # noqa: E501 + ) return data def get_orderbook_with_http_info( self, base_asset_data, quote_asset_data, **kwargs - ): # noqa: E501 - """get_orderbook # noqa: E501 + ): + """get_orderbook - Retrieves the orderbook for a given asset pair. This endpoint should be [paginated](#section/Pagination). Bids will be sorted in descending order by price, and asks will be sorted in ascending order by price. Within the price sorted orders, the orders are further sorted by _taker fee price_ which is defined as the **takerFee** divided by **takerTokenAmount**. After _taker fee price_, orders are to be sorted by expiration in ascending order. The way pagination works for this endpoint is that the **page** and **perPage** query params apply to both `bids` and `asks` collections, and if `page` * `perPage` > `total` for a certain collection, the `records` for that collection should just be empty. # noqa: E501 + Retrieves the orderbook for a given asset pair. This endpoint should + be paginated. Bids will be sorted in + descending order by price, and asks will be sorted in ascending order + by price. Within the price sorted orders, the orders are further + sorted by **taker fee price** which is defined as the **takerFee** + divided by **takerTokenAmount**. After **taker fee price**, orders are + to be sorted by expiration in ascending order. The way pagination + works for this endpoint is that the **page** and **perPage** query + params apply to both `bids` and `asks` collections, and if `page` * + `perPage` = `total` for a certain collection, the `records` for that + collection should just be empty. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_orderbook_with_http_info(base_asset_data, quote_asset_data, async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool - :param str base_asset_data: assetData (makerAssetData or takerAssetData) designated as the base currency in the [currency pair calculation](https://en.wikipedia.org/wiki/Currency_pair) of price. (required) - :param str quote_asset_data: assetData (makerAssetData or takerAssetData) designated as the quote currency in the currency pair calculation of price (required). (required) + >>> thread = api.get_orderbook_with_http_info(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. + :param str base_asset_data: assetData (makerAssetData or + takerAssetData) designated as the base currency in the + `currency pair calculation + `__ + of price. (required) + :param str quote_asset_data: assetData (makerAssetData or + takerAssetData) designated as the quote currency in the currency + pair calculation of price. (required) :param float network_id: The id of the Ethereum network :param float page: The number of the page to request in the collection. :param float per_page: The number of records to return per page. - :return: RelayerApiOrderbookResponseSchema - If the method is called asynchronously, - returns the request thread. + + :return: :class:`RelayerApiOrderbookResponseSchema`. + If the method is called asynchronously, returns the request thread. """ local_var_params = locals() @@ -565,7 +602,7 @@ class DefaultApi(object): "network_id", "page", "per_page", - ] # noqa: E501 + ] all_params.append("async_req") all_params.append("_return_http_data_only") all_params.append("_preload_content") @@ -585,16 +622,18 @@ class DefaultApi(object): or local_var_params["base_asset_data"] is None ): raise ValueError( - "Missing the required parameter `base_asset_data` when calling `get_orderbook`" - ) # noqa: E501 + "Missing the required parameter `base_asset_data`" + "when calling `get_orderbook`" + ) # verify the required parameter 'quote_asset_data' is set if ( "quote_asset_data" not in local_var_params or local_var_params["quote_asset_data"] is None ): raise ValueError( - "Missing the required parameter `quote_asset_data` when calling `get_orderbook`" - ) # noqa: E501 + "Missing the required parameter `quote_asset_data`" + " when calling `get_orderbook`" + ) collection_formats = {} @@ -604,23 +643,17 @@ class DefaultApi(object): if "base_asset_data" in local_var_params: query_params.append( ("baseAssetData", local_var_params["base_asset_data"]) - ) # noqa: E501 + ) if "quote_asset_data" in local_var_params: query_params.append( ("quoteAssetData", local_var_params["quote_asset_data"]) - ) # noqa: E501 + ) if "network_id" in local_var_params: - query_params.append( - ("networkId", local_var_params["network_id"]) - ) # noqa: E501 + query_params.append(("networkId", local_var_params["network_id"])) if "page" in local_var_params: - query_params.append( - ("page", local_var_params["page"]) - ) # noqa: E501 + query_params.append(("page", local_var_params["page"])) if "per_page" in local_var_params: - query_params.append( - ("perPage", local_var_params["per_page"]) - ) # noqa: E501 + query_params.append(("perPage", local_var_params["per_page"])) header_params = {} @@ -631,10 +664,10 @@ class DefaultApi(object): # HTTP header `Accept` header_params["Accept"] = self.api_client.select_header_accept( ["application/json"] - ) # noqa: E501 + ) # Authentication setting - auth_settings = [] # noqa: E501 + auth_settings = [] return self.api_client.call_api( "/v2/orderbook", @@ -645,83 +678,163 @@ class DefaultApi(object): body=body_params, post_params=form_params, files=local_var_files, - response_type="RelayerApiOrderbookResponseSchema", # noqa: E501 + response_type="RelayerApiOrderbookResponseSchema", auth_settings=auth_settings, async_req=local_var_params.get("async_req"), _return_http_data_only=local_var_params.get( "_return_http_data_only" - ), # noqa: E501 + ), _preload_content=local_var_params.get("_preload_content", True), _request_timeout=local_var_params.get("_request_timeout"), collection_formats=collection_formats, ) - def get_orders(self, **kwargs): # noqa: E501 - """get_orders # noqa: E501 + def get_orders(self, **kwargs): + """get_orders - Retrieves a list of orders given query parameters. This endpoint should be [paginated](#section/Pagination). For querying an entire orderbook snapshot, the [orderbook endpoint](#operation/getOrderbook) is recommended. If both makerAssetData and takerAssetData are specified, returned orders will be sorted by price determined by (takerTokenAmount/makerTokenAmount) in ascending order. By default, orders returned by this endpoint are unsorted. # noqa: E501 + Retrieves a list of orders given query parameters. This endpoint + should be paginated. For querying an entire + orderbook snapshot, the orderbook endpoint + is recommended. If both makerAssetData and takerAssetData are + specified, returned orders will be sorted by price determined by + (takerTokenAmount/makerTokenAmount) in ascending order. By default, + orders returned by this endpoint are unsorted. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_orders(async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool - :param str maker_asset_proxy_id: The maker [asset proxy id](https://0xproject.com/docs/0x.js#types-AssetProxyId) (example: \"0xf47261b0\" for ERC20, \"0x02571792\" for ERC721). - :param str taker_asset_proxy_id: The taker asset [asset proxy id](https://0xproject.com/docs/0x.js#types-AssetProxyId) (example: \"0xf47261b0\" for ERC20, \"0x02571792\" for ERC721). + >>> thread = api.get_orders(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. + :param str maker_asset_proxy_id: The maker + `asset proxy id + `__ + (example: "0xf47261b0" for ERC20, "0x02571792" for ERC721). + :param str taker_asset_proxy_id: The taker asset + `asset proxy id + `__ + (example: "0xf47261b0" for ERC20, "0x02571792" for ERC721). :param str maker_asset_address: The contract address for the maker asset. :param str taker_asset_address: The contract address for the taker asset. - :param str exchange_address: Same as exchangeAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str sender_address: Same as senderAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str maker_asset_data: Same as makerAssetData in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str taker_asset_data: Same as takerAssetData in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str trader_asset_data: Same as traderAssetData in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str maker_address: Same as makerAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str taker_address: Same as takerAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str trader_address: Same as traderAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str fee_recipient_address: Same as feeRecipientAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) + :param str exchange_address: Same as exchangeAddress in the + `0x Protocol v2 Specification + `__ + :param str sender_address: Same as senderAddress in the + `0x Protocol v2 Specification + `__ + :param str maker_asset_data: Same as makerAssetData in the + `0x Protocol v2 Specification + `__ + :param str taker_asset_data: Same as takerAssetData in the + `0x Protocol v2 Specification + `__ + :param str trader_asset_data: Same as traderAssetData in the [0x + `0x Protocol v2 Specification + `__ + :param str maker_address: Same as makerAddress in the + `0x Protocol v2 Specification + `__ + :param str taker_address: Same as takerAddress in the + `0x Protocol v2 Specification + `__ + :param str trader_address: Same as traderAddress in the + `0x Protocol v2 Specification + `__ + :param str fee_recipient_address: Same as feeRecipientAddress in the + `0x Protocol v2 Specification + `__ :param float network_id: The id of the Ethereum network :param float page: The number of the page to request in the collection. :param float per_page: The number of records to return per page. - :return: RelayerApiOrdersResponseSchema - If the method is called asynchronously, - returns the request thread. + + :return: :class:`RelayerApiOrdersResponseSchema`. + If the method is called asynchronously, returns the request thread. """ kwargs["_return_http_data_only"] = True if kwargs.get("async_req"): - return self.get_orders_with_http_info(**kwargs) # noqa: E501 + return self.get_orders_with_http_info(**kwargs) else: - (data) = self.get_orders_with_http_info(**kwargs) # noqa: E501 + (data) = self.get_orders_with_http_info(**kwargs) return data - def get_orders_with_http_info(self, **kwargs): # noqa: E501 - """get_orders # noqa: E501 + def get_orders_with_http_info(self, **kwargs): + """get_orders - Retrieves a list of orders given query parameters. This endpoint should be [paginated](#section/Pagination). For querying an entire orderbook snapshot, the [orderbook endpoint](#operation/getOrderbook) is recommended. If both makerAssetData and takerAssetData are specified, returned orders will be sorted by price determined by (takerTokenAmount/makerTokenAmount) in ascending order. By default, orders returned by this endpoint are unsorted. # noqa: E501 + Retrieves a list of orders given query parameters. This endpoint + should be paginated. For querying an entire + orderbook snapshot, the orderbook endpoint + is recommended. If both makerAssetData and takerAssetData are + specified, returned orders will be sorted by price determined by + (takerTokenAmount/makerTokenAmount) in ascending order. By default, + orders returned by this endpoint are unsorted. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.get_orders_with_http_info(async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool - :param str maker_asset_proxy_id: The maker [asset proxy id](https://0xproject.com/docs/0x.js#types-AssetProxyId) (example: \"0xf47261b0\" for ERC20, \"0x02571792\" for ERC721). - :param str taker_asset_proxy_id: The taker asset [asset proxy id](https://0xproject.com/docs/0x.js#types-AssetProxyId) (example: \"0xf47261b0\" for ERC20, \"0x02571792\" for ERC721). + >>> thread = api.get_orders_with_http_info(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. + :param str maker_asset_proxy_id: The maker + `asset proxy id + `__ + (example: "0xf47261b0" for ERC20, "0x02571792" for ERC721). + :param str taker_asset_proxy_id: The taker asset + `asset proxy id + `__ + (example: "0xf47261b0" for ERC20, "0x02571792" for ERC721). :param str maker_asset_address: The contract address for the maker asset. :param str taker_asset_address: The contract address for the taker asset. - :param str exchange_address: Same as exchangeAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str sender_address: Same as senderAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str maker_asset_data: Same as makerAssetData in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str taker_asset_data: Same as takerAssetData in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str trader_asset_data: Same as traderAssetData in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str maker_address: Same as makerAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str taker_address: Same as takerAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str trader_address: Same as traderAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) - :param str fee_recipient_address: Same as feeRecipientAddress in the [0x Protocol v2 Specification](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#order-message-format) + :param str exchange_address: Same as exchangeAddress in the [0x + `0x Protocol v2 Specification + `__ + :param str sender_address: Same as senderAddress in the + `0x Protocol v2 Specification + `__ + :param str maker_asset_data: Same as makerAssetData in the + `0x Protocol v2 Specification + `__ + :param str taker_asset_data: Same as takerAssetData in the + `0x Protocol v2 Specification + `__ + :param str trader_asset_data: Same as traderAssetData in the + `0x Protocol v2 Specification + `__ + :param str maker_address: Same as makerAddress in the + `0x Protocol v2 Specification + `__ + :param str taker_address: Same as takerAddress in the + `0x Protocol v2 Specification + `__ + :param str trader_address: Same as traderAddress in the + `0x Protocol v2 Specification + `__ + :param str fee_recipient_address: Same as feeRecipientAddress in the + `0x Protocol v2 Specification + `__ :param float network_id: The id of the Ethereum network :param float page: The number of the page to request in the collection. :param float per_page: The number of records to return per page. - :return: RelayerApiOrdersResponseSchema - If the method is called asynchronously, - returns the request thread. + + :return: RelayerApiOrdersResponseSchema. + If the method is called asynchronously, returns the request thread. """ local_var_params = locals() @@ -743,7 +856,7 @@ class DefaultApi(object): "network_id", "page", "per_page", - ] # noqa: E501 + ] all_params.append("async_req") all_params.append("_return_http_data_only") all_params.append("_preload_content") @@ -766,70 +879,64 @@ class DefaultApi(object): if "maker_asset_proxy_id" in local_var_params: query_params.append( ("makerAssetProxyId", local_var_params["maker_asset_proxy_id"]) - ) # noqa: E501 + ) if "taker_asset_proxy_id" in local_var_params: query_params.append( ("takerAssetProxyId", local_var_params["taker_asset_proxy_id"]) - ) # noqa: E501 + ) if "maker_asset_address" in local_var_params: query_params.append( ("makerAssetAddress", local_var_params["maker_asset_address"]) - ) # noqa: E501 + ) if "taker_asset_address" in local_var_params: query_params.append( ("takerAssetAddress", local_var_params["taker_asset_address"]) - ) # noqa: E501 + ) if "exchange_address" in local_var_params: query_params.append( ("exchangeAddress", local_var_params["exchange_address"]) - ) # noqa: E501 + ) if "sender_address" in local_var_params: query_params.append( ("senderAddress", local_var_params["sender_address"]) - ) # noqa: E501 + ) if "maker_asset_data" in local_var_params: query_params.append( ("makerAssetData", local_var_params["maker_asset_data"]) - ) # noqa: E501 + ) if "taker_asset_data" in local_var_params: query_params.append( ("takerAssetData", local_var_params["taker_asset_data"]) - ) # noqa: E501 + ) if "trader_asset_data" in local_var_params: query_params.append( ("traderAssetData", local_var_params["trader_asset_data"]) - ) # noqa: E501 + ) if "maker_address" in local_var_params: query_params.append( ("makerAddress", local_var_params["maker_address"]) - ) # noqa: E501 + ) if "taker_address" in local_var_params: query_params.append( ("takerAddress", local_var_params["taker_address"]) - ) # noqa: E501 + ) if "trader_address" in local_var_params: query_params.append( ("traderAddress", local_var_params["trader_address"]) - ) # noqa: E501 + ) if "fee_recipient_address" in local_var_params: query_params.append( ( "feeRecipientAddress", local_var_params["fee_recipient_address"], ) - ) # noqa: E501 + ) if "network_id" in local_var_params: - query_params.append( - ("networkId", local_var_params["network_id"]) - ) # noqa: E501 + query_params.append(("networkId", local_var_params["network_id"])) if "page" in local_var_params: - query_params.append( - ("page", local_var_params["page"]) - ) # noqa: E501 + query_params.append(("page", local_var_params["page"])) if "per_page" in local_var_params: - query_params.append( - ("perPage", local_var_params["per_page"]) - ) # noqa: E501 + query_params.append(("perPage", local_var_params["per_page"])) header_params = {} @@ -840,10 +947,10 @@ class DefaultApi(object): # HTTP header `Accept` header_params["Accept"] = self.api_client.select_header_accept( ["application/json"] - ) # noqa: E501 + ) # Authentication setting - auth_settings = [] # noqa: E501 + auth_settings = [] return self.api_client.call_api( "/v2/orders", @@ -854,60 +961,64 @@ class DefaultApi(object): body=body_params, post_params=form_params, files=local_var_files, - response_type="RelayerApiOrdersResponseSchema", # noqa: E501 + response_type="RelayerApiOrdersResponseSchema", auth_settings=auth_settings, async_req=local_var_params.get("async_req"), _return_http_data_only=local_var_params.get( "_return_http_data_only" - ), # noqa: E501 + ), _preload_content=local_var_params.get("_preload_content", True), _request_timeout=local_var_params.get("_request_timeout"), collection_formats=collection_formats, ) - def post_order(self, **kwargs): # noqa: E501 - """post_order # noqa: E501 + def post_order(self, **kwargs): + """post_order - Submit a signed order to the relayer. # noqa: E501 + Submit a signed order to the relayer. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.post_order(async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool + >>> thread = api.post_order(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. :param float network_id: The id of the Ethereum network - :param SignedOrderSchema signed_order_schema: A valid signed 0x order based on the schema. - :return: None - If the method is called asynchronously, - returns the request thread. + :param signed_order_schema: Instance of :class:`SignedOrderSchema`. + A valid signed 0x order based on the schema. + + :return: None. + If the method is called asynchronously, returns the request thread. """ kwargs["_return_http_data_only"] = True if kwargs.get("async_req"): - return self.post_order_with_http_info(**kwargs) # noqa: E501 + return self.post_order_with_http_info(**kwargs) else: - (data) = self.post_order_with_http_info(**kwargs) # noqa: E501 + (data) = self.post_order_with_http_info(**kwargs) return data - def post_order_with_http_info(self, **kwargs): # noqa: E501 - """post_order # noqa: E501 + def post_order_with_http_info(self, **kwargs): + """post_order - Submit a signed order to the relayer. # noqa: E501 + Submit a signed order to the relayer. This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please pass async_req=True - >>> thread = api.post_order_with_http_info(async_req=True) - >>> result = thread.get() + asynchronous HTTP request, please pass `async_req` = **True** - :param async_req bool + >>> thread = api.post_order_with_http_info(async_req=True) # doctest: +SKIP + >>> result = thread.get() # doctest: +SKIP + + :param bool async_req: Whether request should be asynchronous. :param float network_id: The id of the Ethereum network - :param SignedOrderSchema signed_order_schema: A valid signed 0x order based on the schema. - :return: None - If the method is called asynchronously, - returns the request thread. + :param signed_order_schema: Instance of :class:`SignedOrderSchema` + A valid signed 0x order based on the schema. + + :return: None. + If the method is called asynchronously, returns the request thread. """ local_var_params = locals() - all_params = ["network_id", "signed_order_schema"] # noqa: E501 + all_params = ["network_id", "signed_order_schema"] all_params.append("async_req") all_params.append("_return_http_data_only") all_params.append("_preload_content") @@ -928,9 +1039,7 @@ class DefaultApi(object): query_params = [] if "network_id" in local_var_params: - query_params.append( - ("networkId", local_var_params["network_id"]) - ) # noqa: E501 + query_params.append(("networkId", local_var_params["network_id"])) header_params = {} @@ -943,17 +1052,15 @@ class DefaultApi(object): # HTTP header `Accept` header_params["Accept"] = self.api_client.select_header_accept( ["application/json"] - ) # noqa: E501 + ) # HTTP header `Content-Type` header_params[ "Content-Type" - ] = self.api_client.select_header_content_type( # noqa: E501 - ["application/json"] - ) # noqa: E501 + ] = self.api_client.select_header_content_type(["application/json"]) # Authentication setting - auth_settings = [] # noqa: E501 + auth_settings = [] return self.api_client.call_api( "/v2/order", @@ -964,12 +1071,12 @@ class DefaultApi(object): body=body_params, post_params=form_params, files=local_var_files, - response_type=None, # noqa: E501 + response_type=None, auth_settings=auth_settings, async_req=local_var_params.get("async_req"), _return_http_data_only=local_var_params.get( "_return_http_data_only" - ), # noqa: E501 + ), _preload_content=local_var_params.get("_preload_content", True), _request_timeout=local_var_params.get("_request_timeout"), collection_formats=collection_formats, diff --git a/python-packages/sra_client/sra_client/api_client.py b/python-packages/sra_client/sra_client/api_client.py index 6139fdb425..ad2b6385bf 100644 --- a/python-packages/sra_client/sra_client/api_client.py +++ b/python-packages/sra_client/sra_client/api_client.py @@ -207,8 +207,7 @@ class ApiClient(object): If obj is None, return None. If obj is str, int, long, float, bool, return directly. - If obj is datetime.datetime, datetime.date - convert to string in iso8601 format. + If obj is datetime.datetime, datetime.date convert to string in iso8601 format. If obj is list, sanitize each element in the list. If obj is dict, return the dict. If obj is OpenAPI model, return the properties dict. diff --git a/python-packages/sra_client/test/__init__.py b/python-packages/sra_client/test/__init__.py index e69de29bb2..789ac3d7e7 100644 --- a/python-packages/sra_client/test/__init__.py +++ b/python-packages/sra_client/test/__init__.py @@ -0,0 +1 @@ +"""Test for sra_client.""" diff --git a/python-packages/sra_client/test/test_default_api.py b/python-packages/sra_client/test/test_default_api.py index d23c6173fc..ec583c7b5b 100644 --- a/python-packages/sra_client/test/test_default_api.py +++ b/python-packages/sra_client/test/test_default_api.py @@ -1,3 +1,4 @@ +"""Test the default api client""" # coding: utf-8 @@ -5,30 +6,92 @@ from __future__ import absolute_import import unittest -import sra_client -from sra_client.api.default_api import DefaultApi # noqa: E501 -from sra_client.models.relayer_api_asset_data_pairs_response_schema import ( - RelayerApiAssetDataPairsResponseSchema -) -from sra_client.rest import ApiException +from sra_client import ApiClient, Configuration +from sra_client.api import DefaultApi class TestDefaultApi(unittest.TestCase): """DefaultApi unit test stubs""" def setUp(self): - self.api = sra_client.api.default_api.DefaultApi() # noqa: E501 + config = Configuration() + config.host = "http://localhost:3000" + self.api = DefaultApi(ApiClient(config)) def tearDown(self): pass + # pylint: disable=too-many-locals def test_get_asset_pairs(self): """Test case for get_asset_pairs """ - expected = RelayerApiAssetDataPairsResponseSchema([]) + expected = { + "records": [ + { + "assetDataA": { + "assetData": "0xf47261b0000000000000000000000000" + "d0a1e359811322d97991e03f863a0c30c2cf029c", + "maxAmount": "115792089237316195423570985008687907853" + "269984665640564039457584007913129639936", + "minAmount": "0", + "precision": 18, + }, + "assetDataB": { + "assetData": "0xf47261b0000000000000000000000000" + "2002d3812f58e35f0ea1ffbf80a75a38c32175fa", + "maxAmount": "115792089237316195423570985008687907853" + "269984665640564039457584007913129639936", + "minAmount": "0", + "precision": 18, + }, + } + ] + } + actual = self.api.get_asset_pairs() - self.assertEqual(actual, expected) + + acutal_asset_data_a = actual.records[0]["assetDataA"]["assetData"] + expected_asset_data_a = expected["records"][0]["assetDataA"][ + "assetData" + ] + self.assertEqual(acutal_asset_data_a, expected_asset_data_a) + acutal_max_amount_a = actual.records[0]["assetDataA"]["maxAmount"] + expected_max_amount_a = expected["records"][0]["assetDataA"][ + "maxAmount" + ] + self.assertEqual(acutal_max_amount_a, expected_max_amount_a) + acutal_min_amount_a = actual.records[0]["assetDataA"]["minAmount"] + expected_min_amount_a = expected["records"][0]["assetDataA"][ + "minAmount" + ] + self.assertEqual(acutal_min_amount_a, expected_min_amount_a) + acutal_precision_a = actual.records[0]["assetDataA"]["precision"] + expected_precision_a = expected["records"][0]["assetDataA"][ + "precision" + ] + self.assertEqual(acutal_precision_a, expected_precision_a) + + acutal_asset_data_b = actual.records[0]["assetDataB"]["assetData"] + expected_asset_data_b = expected["records"][0]["assetDataB"][ + "assetData" + ] + self.assertEqual(acutal_asset_data_b, expected_asset_data_b) + acutal_max_amount_b = actual.records[0]["assetDataB"]["maxAmount"] + expected_max_amount_b = expected["records"][0]["assetDataB"][ + "maxAmount" + ] + self.assertEqual(acutal_max_amount_b, expected_max_amount_b) + acutal_min_amount_b = actual.records[0]["assetDataB"]["minAmount"] + expected_min_amount_b = expected["records"][0]["assetDataB"][ + "minAmount" + ] + self.assertEqual(acutal_min_amount_b, expected_min_amount_b) + acutal_precision_b = actual.records[0]["assetDataB"]["precision"] + expected_precision_b = expected["records"][0]["assetDataB"][ + "precision" + ] + self.assertEqual(acutal_precision_b, expected_precision_b) if __name__ == "__main__":